C - 陣法魔/Cigam Square 解説
by
potato167
\(N\) が偶数のとき
\(A_{i, j} = N(i - 1)+ j\) とします。
N = 4
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
なぜこれでいいのかというと、行を \(1\) つ動いたときの変化量が \(N^2\) が、右端の列の総和と左端の列の総和の差が \(N(N - 1)\) よりも大きくなるからです。
\(N\) が奇数のとき
\(A_{i, j} = N(i - 1)+ j\) とします。
その後、\(m = \frac{(N - 1)}{2}\) として、\(A_{m + 1, 1}\) と \(A_{m, N}\) を入れ替えます。
N = 5
1 2 3 4 5
6 7 8 9 11
10 12 13 14 15
16 17 18 19 20
21 22 23 24 25
真ん中の列と行の総和が一緒になってしまうため、微小な変化を加える必要があります。
投稿日時:
最終更新: