双循环的迭代计数器

SdF*_*S78 5 python algorithm nested-loops

我试图找到计算这个双for循环的每次迭代的公式(例如在 python 中):

for i in range(5):
   for j in range(5):
       count = MYSTERIOUS_FORMULA
       print count
Run Code Online (Sandbox Code Playgroud)

这里 count 的最终值应该是 25。

我试过,count=(i+1)*j但它产生0,1,2,3,4,0,2,4等。

fox*_*lue 7

双 for 循环(又名嵌套循环)。

# Set count to 0 before loop starts
count = 0

for i in range(5):
    for j in range(5):
        # solved mysterious formula (short hand 'count = count + 1')
        count += 1
# displaying count after loop
print(count)
Run Code Online (Sandbox Code Playgroud)

扩展公式count = count + 1,将其设置countequal本身 + 1

count = count + 1
Run Code Online (Sandbox Code Playgroud)


Spl*_*lic 7

神秘的公式很简单:

{count} = {index of current loop} + {size of current loop}*{count of parent loop}
Run Code Online (Sandbox Code Playgroud)

例如,考虑一个循环:

x = 5

for i in range(x):
    count = i
Run Code Online (Sandbox Code Playgroud)

明确地说,count = i + x*0但第二项无关紧要,因为没有父循环。两个循环的示例可能更具启发性:

x = 5
y = 6

for i in range(x):
    for j in range(y):
        count = j + y*(i)
Run Code Online (Sandbox Code Playgroud)

请注意,我i在括号中强调它是{count of parent loop}. 这个公式可以很容易地扩展到第三个循环:

x = 5
y = 6
z = 7

for i in range(x):
    for j in range(y):
        for k in range(z):
            count = k + z*(j + y*(i))
Run Code Online (Sandbox Code Playgroud)

等等...