我需要三个正整数的每个组合,总和为1000.
这是我的尝试,但我不确定这是否正确,因为我无法验证它.
def getSum():
l = []
for x in range(1, 999):
total = 1000-x
for y in range(1, 999):
total = total-y
if total>0:
l.append([x, y, total])
return l
print len(getSum())
Run Code Online (Sandbox Code Playgroud)
我得到了28776种不同的组合.那是对的吗?
由于1+998+1和1+1+998是不一样的东西,也有组合的一些不可思议的量:
这一行可以生成所有:
[(i, 1000-i-k, k) for i in range(1,999) for k in range(1,1000-i)]
Run Code Online (Sandbox Code Playgroud)
结果:
[...
(1, 4, 995),
(1, 3, 996),
(1, 2, 997),
(1, 1, 998),
(2, 997, 1),
(2, 996, 2),
...]
Run Code Online (Sandbox Code Playgroud)
这个清单的长度是:
498501
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
244 次 |
| 最近记录: |