我正在使用python制作以下表达式的原型:
(n1^i1)*(n2^i2)*......*(n10^i10) = output/input_min (where I have to store i1,i2,i3,..)
我只用3个元素写了这样的东西。
passes = []
max_pass = 8
for i in range(0,max_pass):
for j in range(0,max_pass):
for k in range(0,max_pass):
temp = np.array([i, j, k])
comp = np.round(np.prod(basis**temp), 3)
ratio = np.round(self.output/self.input_min, 3)
if comp == ratio:
passes.append([i, j, k])
考虑到我知道n1,n2,...,n10和严格的手部比率,有没有办法可以在不编写10个嵌套循环的情况下做到这一点? (i1,i2,... i10必须是整数)
答案 0 :(得分:0)
使用一组计数器,所有计数器都初始化为零。
形成一个无限循环,您可以在其中递增第一个计数器。当计数器达到最大值时,将其重置为零并进入下一个计数器。下一个计数器遵循相同的逻辑,依此类推。
因此,外部循环将包括内部进位传播循环。
最后一个计数器进位时处理终止。