我正在使用一种蛮力的方法来尝试找到谜题扩展的组合。
我试图获取大量组合,然后测试每个组合以查看它们是否符合特定条件。
我使用Python出色的itertools生成了组合,从本质上讲,这给了我一个迭代器,我可以对其进行测试。
这很快返回,并给我91390个组合来检查:
itertools.combinations(range(1, 40), 4)
这花了几分钟,然后给我198792594组合进行测试:
itertools.combinations(range(1, 122), 5)
当我进入下一个级别时,我需要以下答案:
itertools.combinations(range(1, 365), 6)
当我进入一组364的6路组合时...需要花费很长时间。年龄。我本质上是在要求很多组合吗?它如何缩放?
最佳答案
您可以这样计算这些数字:
前往google.com
输入“ 40选择4”
输入“ 121选择5”
输入“ 364 choose 6”
有关实际公式,请参见wikipedia。
它像阶乘函数一样缩放。
关于python - itertools.combinations在Python中如何缩放?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7942026/