双循环计数器,内部和外部都计数

Counter in double loop with counting in both internal and external for

我想知道下面的计数方式是否有一个众所周知的公式:

count = 0
for i in range(n):
   for j in range(m):
      count = count + 1
   count = count + 10

非常感谢,

卡约

编辑 1:

谢谢欧内斯特,你是对的,但这不是真正的问题所在。对不起,我不够清楚,让我更好地解释我的问题。我不只是想数数,我需要在内循环中使用这个计数器。我有一个 2D 展平数组,我只想访问该数组的一个子 2D 区域。所以,实际上,我正在做的是:

count = 0
for i in range(n):
   for j in range(m):
      big_flatten_array(count) = value
      count = count + 1
   count = count + 10

编辑 2: 仅使用

是行不通的
count = i * 10 + j

尝试检查值:

count = 0
for i in range(3):
   for j in range():
      k = i * 2 + j
      vec[k] = count
      vec2[k] = i * 10 + j
      count = count + 1
   count = count + 10

你会看到 vec 和 vec2 不一样...

有很简单的解决方法

count = n*(10+m)

让我试试。如果我理解正确,你只需要循环内 count 的当前(不是最终)值。所以应该这样做:

# In the inner loop    
count = i * 10 + j

假设 count = count + 10 行不存在,那么它就是:

count = i*m + j

考虑 n = 3,且 m = 3 所以计数值就像 0、1、2、3、4 .. 添加行 count += 10 后,您只需在每次外循环完成时将 10 的倍数添加到计数值即可。

0、1、12、13、24、25...或 0、1、10+2、10+3、20+4、20+5...

所以表达式变成

count = (10*i) + (i*m+j)

你可以像这样得到所有的计数值:

count = [(10 * i) + (i * m + j) for i in range(n) for j in range(m)]