我正在用 Python 编写一个程序,我意识到我需要解决的问题需要我,给定一组 S
和 n
元素 (|S|= n),在特定顺序 m
的所有可能子集上测试函数(即具有 m 个元素)。用答案产生部分解,然后用下一个顺序 m=m+1 再试一次,直到 m=n。
我正在写形式的解决方案:
def findsubsets(S, m):
subsets = set([])
...
return subsets
但我知道 Python 我希望解决方案已经存在。
最好的方法是什么?
最佳答案
itertools.combinations如果你有 Python 2.6 或更高版本,是你的 friend 。否则,请检查链接以获取等效功能的实现。
import itertools
def findsubsets(S,m):
return set(itertools.combinations(S, m))
S:要为其查找子集的集合
m:子集中的元素个数
关于python - 我怎样才能找到一个集合的所有子集,正好有 n 个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/374626/