有没有有效的方法来进行迭代?

时间:2018-10-16 13:01:05

标签: python loops math

我正在使用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必须是整数)

1 个答案:

答案 0 :(得分:0)

使用一组计数器,所有计数器都初始化为零。

形成一个无限循环,您可以在其中递增第一个计数器。当计数器达到最大值时,将其重置为零并进入下一个计数器。下一个计数器遵循相同的逻辑,依此类推。

因此,外部循环将包括内部进位传播循环。

最后一个计数器进位时处理终止。