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

时间:2016-07-19 21:58:58

标签: python math

每年在超级碗期间,我父亲都会和他的朋友打赌,猜猜最后一个得分数,正确猜测的人赢了20美元。我的问题难以用文字解释,所以我绘制了一个图表:http://i.stack.imgur.com/1ECrH.jpg

基本上我想在彼此上添加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

1 个答案:

答案 0 :(得分:2)

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