假设给定一个长度为 4 的向量,其中包含最小值 (0,0,0,0) 和最大值 (2,1,3,2)。我想找到这个范围内的所有整数向量,例如,5。
以下代码实现了这一点:
maxvalues = (2,1,3,2)
k = 5
t = []
for x1 in range(maxvalues[0]+1):
for x2 in range(maxvalues[1]+1):
for x3 in range(maxvalues[2]+1):
for x4 in range(maxvalues[3]+1):
if x1+x2+x3+x4 is k:
t.append((x1,x2,x3,x4))
但是,此代码不能很好地推广到更大的向量,并且似乎效率低下。有没有人有一个很好的方法来概括这一点?
编辑:小错误,忘记了if语句