1. ホーム
  2. python

[解決済み] ちょうど n 個の要素を持つ集合のすべての部分集合を見つけるにはどうしたらよいですか。

2023-06-29 17:16:48

質問

私はPythonでプログラムを書いていますが、ある問題を解くために、あるセット Sn 要素 (|S|=n) を用いて、ある順序のすべての可能な部分集合に対して関数をテストするために m (を持つ)。 m の要素数)。その答えを使って部分解を生成し、次の次数m=m+1、m=nまで再挑戦すること。

という形の解を書く途中です。

def findsubsets(S, m):
    subsets = set([])
    ...
    return subsets

しかし、Pythonを知っている私は、解決策がすでにあることを期待しました。

これを達成するための最良の方法は何でしょうか?

どのように解決するのですか?

itertools.combinations は、Python 2.6以上を持っている場合、あなたの友人です。 そうでなければ、同等の関数の実装をリンク先で確認してください。

import itertools
def findsubsets(S,m):
    return set(itertools.combinations(S, m))

S: 部分集合を見つけたい集合

m: 部分集合の要素数