我想为计算机找到一种有效的方法来处理大量变量(比如 50:x1,...,x50),这些变量执行如下操作:找到所有组合 [x1,x2,x3] 满足:
0 <= x1 <= x2 <= x3
x1 + x2 + x3 = 100
这是一个查找 sum = 100 的所有组合的示例,但 [1,99] 和 [99,1] 在这里被认为是不同的:
x=[]
for i, j in itertools.product(range(0,101), range(0,101)):
if i+j==100:
x.append([i,j])
我想找到一种方法来减少循环次数,并且只提供以下内容:
[0,100], [1,99], [2,98], ...., [50,50]
[51,49] 中没有任何内容。
主要目标是使用 50 个变量 (x_1,...x_50) 执行此操作,总和为 100。
用正常循环不太可能做到这一点