グリッドを反復処理し、インデックスを新しい順序で別のグリッドに変換できるアルゴリズムを探しています。
基本的に、サイズ n*m のグリッドが与えられた場合:
1_1 1_2 1_3 ... 1_n
2_1 2_2 2_3 ... 2_n
.
.
.
m_1 m_2 m_3 ... m_m
どうすれば次のように変換できますか:
1_1 1_2 1_4 ...
1_3 1_5 ...
1_6 ...
...
.
.
.
最初のグリッドを反復処理し、一番上の行で左から右に移動し、次に 2 番目の行で左から右に移動し、一番下の行で左から右に移動するとします。
基本的に、要素を上の三角形に押し込みます。
もう 1 つの問題は、三角形を格納するために使用されるグリッドの長さと幅を、n と m を知るだけでどのように把握するかということです。そのための公式はありますか?
たとえば、5*6 のグリッドは 8*7 に変更されます...
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25
26 27 28 29 30
になります:
1 2 4 7 11 16 22 29
3 5 8 12 17 23 30
6 9 13 18 24
10 14 19 25
15 20 26
21 27
28