【发布时间】:2020-06-04 11:30:25
【问题描述】:
所以我有一组 11 个变量,我想使用 python 分配数字 1 到 11。然后我想遍历这些作业的所有组合并检查它们是否完成了一系列测试。 6 个测试是这样的,即测试 6 个不同的变量组合(包括一个单独的保持恒定值 (12) 的第 12 个变量)以查看它们是否相加到 26。要使排列成功,所有组合必须相加到 26 .
为了简化,假设只是 3 个变量分配了数字 1-3 我希望程序输出 a=1,b=2,c=3 然后在将顺序更改为 a=1 之前对照标准检查,b=3,c=2。检查然后更改:a=2,b=1,c=3 检查并更改等,直到检查完所有组合。
我首先考虑使用列表来存储数字 1 到 11,然后使用 shuffle 函数随机化列表顺序。我不确定如何迭代这些组合。 shuffle 的随机性最终会完成这项工作,但它会非常慢,而且肯定不是一个优雅的解决方案。
提前感谢您的帮助:)
【问题讨论】:
-
itertools.combinations()是一个内置的解决方案。 -
什么是 6 项测试?您是否将搜索限制在 11 个变量中的 4 个?这些是否重复?
-
这 6 个测试是对 6 个不同的变量组合(包括保持恒定值 (12) 的单独的第 12 个变量)进行测试,看它们是否相加为 26。成功,所有组合必须加到 26。
-
修改问题有帮助,所以显示了这个要求。
标签: python list loops combinations permutation