每年在超级碗期间,我父亲都会和他的朋友打赌,猜猜最后一个得分数,并且正确猜测谁赢得20美元.我的问题难以用文字解释,所以我绘制了一个图表:
基本上我想在彼此上添加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))