【发布时间】:2008-12-17 14:09:18
【问题描述】:
我正在用 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 大小子集的数量会很快变得非常大。 -
确实遇到了同样的问题,开始自己编写代码,然后意识到必须有一个 Python 库来解决这个问题!
标签: python