python – 取4个数字的总和,然后将这4个数字加到这4个数字的总和上,然后重复

每年在超级碗期间,我父亲都会和他的朋友打赌,猜猜最后一个得分数,并且正确猜测谁赢得20美元.我的问题难以用文字解释,所以我绘制了一个图表:
《python – 取4个数字的总和,然后将这4个数字加到这4个数字的总和上,然后重复》

基本上我想在彼此上添加4个数字(2,3,6,7),然后取16个数并将这4个数字加到每个总和上.
在我重复这个过程大约100次之后,我应该有足够的分数来找到大多数所有结束数字和最可能的结束数字.

这需要花费大量时间手工完成,所以我尝试编写一些代码,但对于像我这样的初学者来说这是非常困难的(底部完成了一半代码).

我想知道在Python 2.7中是否有更好的方法可以做到这一点.

sum_2 = {}
sum_3 = {}
sum_6 = {}
sum_7 = {}
nums = [2,3,6,7]
n_2 = 1
n_3 = 1
n_6 = 1
n_7 = 1
n_2_2 = n_2
n_3_3 = n_3
n_6_6 = n_6
n_7_7 = n_7
while n_7 < 10:
    for x in nums:
        sum_2[n_2] = x + x
        sum_2[n_2_2] = sum_2[n_2] + x
        n_2  = n_2 + 1
        n_2_2  = n_2 + 1

    for x in nums:
        sum_3[n_3] =  x + x
        sum_3[n_3_3] = sum_3[n_3] + x
        n_3 = n_3 + 1
        n_3_3  = n_3 + 1

    for x in nums:
        sum_6[n_6] =  x + x
        sum_6[n_6_6] = sum_6[n_6] + x
        n_6  = n_6 + 1
        n_6_6  = n_6 + 1

    for x in nums:
        sum_7[n_7] =  x + x
        sum_7[n_7_7] = sum_7[n_7] + x
        n_7  = n_7 + 1
        n_7_7  = n_7 + 1
else:
    print sum_2
    print sum_3
    print sum_6
    print sum_7

最佳答案

nums = [2,3,6,7]
x = []
for i in range(5):
    for p in itertools.product(nums, repeat=i):
        x.append(sum(p))
点赞