2次元配列がある場合、各要素を1次元で表す方法はrow_num * row_width + column
、行番号、列に要素が必要な場合に使用することです。しかし、私が苦労しているのは、3x3 2d 配列がある場合に 1 次元配列がどれだけ大きくなるべきかということです (例として)。1d 配列には 3^3 = 9 で十分ではありませんか? しかし、要素 3,2 の場合、インデックスは 3 * 3 + 2 = 11 になります。または、サイズは、アドレス指定したい最大のインデックスのサイズにする必要があります。 3x3 2d 配列?
質問する
143 次
1 に答える
4
行と列が 0,1,2 の場合、ゼロからカウントを開始する必要があります (ゼロ インデックス)。
その場合、要素 "(3,2)" は実際には "(2, 1)"、つまり 2*3+1=7 であり、最後の要素 "(3,3)" は実際には "(2,2)" です。 2*3+2=8 です。これは 1 次元配列の最後の要素です。これらも 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 に答える