2019-03-12
阅读量:
813
测试每个变量排列而无需硬编码
我有9个不同的变量,我们称之为 - i,我想测试是否 a+b+c == d+e+f & a+b+c == g+h+i & a+b+c == a+d+g & a+b+c == b+e+h & a+b+c == c+f+i & a+b+c == a+e+i & a+b+c == c+e+g。但是有一个问题。我想测试这种可能的所有安排,例如交换b和h或甚至更多变量。我还计算出有45360种不同的安排。我想知道是否有任何可能的方法来做到这一点......我将不胜感激任何帮助!
解决办法:可以使用itertools.permutations生成所有排列的列表,然后您可以将它们相加,或者编写您自己的自定义添加函数:
def add3(n1, n2, n3):
return n1+n2+n3
list_of_nums = [a, b, c, d, e, f, g, h, i]
all_perm_sums = (add3(n1, n2, n3) for n1, n2, n3 in itertools.permutations(list_of_nums, 3))
all_perm_sums_are_equal = len(set(all_perm_sums)) == 1






评论(0)


暂无数据
推荐帖子
0条评论
0条评论
0条评论