我正在用Python写一个程序,我意识到要解决的一个问题要求我给定一个S包含n元素(| S | = n)的集合,以便对某个特定顺序的所有可能子集m(例如,使用m元素数)。要使用答案产生部分解决方案,然后以下一个阶数m = m + 1再次尝试,直到m = n。
我正在写以下形式的解决方案:
def findsubsets(S, m):
subsets = set([])
...
return subsets
但是了解Python之后,我希望已经有了解决方案。
做到这一点的最佳方法是什么?
scipy.misc.comb(S, m)给出您将获得的子集数量。由于S的m个子集的数量很快变得非常大,因此最终应该在执行代码之前进行检查。