Python
 Computer >> コンピューター >  >> プログラミング >> Python

セットの特定のサイズのすべてのサブセットを取得するPythonプログラム


この記事では、以下に示す問題ステートメントの解決策について学習します。

問題の説明 −セットが与えられたので、サイズnのすべてのサブセットをリストする必要があります

問題を解決するための3つのアプローチがあります-

itertools.combinations()メソッドの使用

# itertools module
import itertools
def findsubsets(s, n):
   return list(itertools.combinations(s, n))
#main
s = {1,2,3,4,5}
n = 4
print(findsubsets(s, n))

出力

[(1, 2, 3, 4), (1, 2, 3, 5), (1, 2, 4, 5), (1, 3, 4, 5), (2, 3, 4, 5)]

map()およびcombination()メソッドの使用

# itertools module
from itertools import combinations
def findsubsets(s, n):
   return list(map(set, itertools.combinations(s, n)))
# Driver Code
s = {1, 2, 3, 4, 5}
n = 4
print(findsubsets(s, n))

出力

[{1, 2, 3, 4}, {1, 2, 3, 5}, {1, 2, 4, 5}, {1, 3, 4, 5}, {2, 3, 4, 5}]

反復可能なリストでの理解の使用

# itertools
import itertools
def findsubsets(s, n):
   return [set(i) for i in itertools.combinations(s, n)]
# Driver Code
s = {1, 2, 3, 4, 5}
n = 4
print(findsubsets(s, n))

出力

[{1, 2, 3, 4}, {1, 2, 3, 5}, {1, 2, 4, 5}, {1, 3, 4, 5}, {2, 3, 4, 5}]

結論

この記事では、特定のサイズのセットのすべてのサブセットを取得する方法について学習しました


  1. 無向グラフにPythonで指定されたサイズの独立集合が含まれているかどうかを確認します

    与えられた無向グラフがあるとしましょう。サイズlの独立集合が含まれているかどうかを確認する必要があります。サイズlの独立したセットがある場合は、「はい」を返します。それ以外の場合は「いいえ」を返します。 グラフ内の独立集合は、互いに直接接続されていない頂点の集合として定義されていることに注意する必要があります。 したがって、入力がL =4のような場合、 その場合、出力はyesになります これを解決するには、次の手順に従います- 関数is_valid()を定義します。これはグラフを取ります、arr 0からarrのサイズまでの範囲のiの場合、実行します i + 1

  2. 指定された文字列のすべての順列を出力するPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −文字列の可能なすべての順列を表示するために必要な文字列が与えられます。 次に、以下の実装のソリューションを見てみましょう- 例 # conversion def toString(List):    return ''.join(List) # permutations def permute(a, l, r):    if l == r:       print (toString(a))    e