0

如果我有一个二维数组,则表示一维中每个元素的方法是row_num * row_width + column如果我想要 row_num 列的元素。但是我正在努力解决的是,如果我有一个 3x3 二维数组(仅作为示例),一维数组应该有多大。对于一维数组,3^3 = 9 不应该足够吗?但是对于元素 3,2,索引将是 3 * 3 + 2 = 11。或者大小应该是我想要处理的最大索引的大小 - 例如,如果我想处理来自的所有元素,则为 3 * 3 + 3 = 12一个 3x3 二维数组?

4

1 回答 1

4

您需要从零开始计数(零索引),其中行和列是 0、1、2。

那么元素“(3,2)”真的是“(2, 1)”,或者说2*3+1=7,最后的元素“(3,3)”真的是“(2,2)”,即是 2*3+2=8。这是一维数组中的最后一个元素,因为它们也是从 0 开始计数的,所以这 9 个元素是 0,1,2,3,4,5,6,7,8。

例如:

>>> for r in 0,1,2:
...     for c in 0,1,2:
...         print r, c, r*3+c
... 
0 0 0
0 1 1
0 2 2
1 0 3
1 1 4
1 2 5
2 0 6
2 1 7
2 2 8
于 2012-08-22T19:12:29.113 回答