如果我有一个二维数组,那么在1维中表示每个元素的方法是使用row_num * row_width + column
,如果我想要row_num,column的元素。但我正在努力的是,如果我有一个3x3 2d阵列,那么一维数组应该有多大(仅作为一个例子)。不应该3 ^ 3 = 9对于1d阵列是否足够?但是对于元素3,2,索引将是3 * 3 + 2 = 11.或者大小应该是我想要解决的最大索引的大小 - 例如3 * 3 + 3 = 12如果我想解决3x3 2d阵列中的所有元素?
答案 0 :(得分:4)
你需要从零(零索引)开始计数,其中行和列是0,1,2。
然后元素"(3,2)"是真的"(2,1)",或2 * 3 + 1 = 7,最后的元素"(3,3)"实际上是"(2,2)",它是2 * 3 + 2 = 8。这是1-D数组中的最后一个元素,因为它们也从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