第8講 4次魔方陣と6次魔方陣の作成

第6話 移動対象の確定

   0  1 2 3 4 5
 0 1 2 3  4 5 6
 1 7 8 9 10 11 12
 2 13 14 15 16 17 18
 3 19 20 21 22 23 24
 4 25 26 27 28 29 30
 5 31 32 33 34 35 36

解説していきます。この表が何度も登場しますが、

 0
 1
 2
 3
 4
 5


  For i = 0 To n - 1
    For j = 0 To n - 1
      a(i, j) = n * i + j + 1
    Next
  Next
に対応し、

 0  1 2 3 4 5

に対応しているということをしっかり念頭においてください。

ポイントは、移動させる場所は

1 2 3
7 8 9
13 14 15

の部分の色

1 2 3
7 8 9
13 14 15

が確定すれば、すべて確定します。なぜなら、
左右
の線の位置に鏡を置けば

1 2 3  4 5 6
7 8 9 10 11 12
13 14 15 16 17 18

となります。ただし、薄緑は上下対称移動なので、右側は色を抜いて、

1 2 3  4 5 6
7 8 9 10 11 12
13 14 15 16 17 18

と対称移動する場所が確定します。
ただし、ピンクは中央の点に対する点対称移動で、は中央の線に対する左右点対称移動です。
つまり、の方は、移動する主体とその相手の組が確定していますが、
ピンクの方は、移動する主体だけが確定しただけで、まだ相手が確定していません。
同じく、薄緑もまだ相手が確定していません。
次に、
上下
の直線の位置に鏡を置くと、

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
31 32 33 34 35 36

ただし、は左右対称移動ですでに組が確定していますので、
下半分から色を抜きます。

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
31 32 33 34 35 36

このようにして、対称移動する主体とその相手の組がすべて確定します。
を加えた表にしておくと

   0  1  2  3  4  5
 0 1 2 3  4 5 6
 1 7 8 9 10 11 12
 2 13 14 15 16 17 18
 3 19 20 21 22 23 24
 4 25 26 27 28 29 30
 5 31 32 33 34 35 36

というわけで

   0  1  2
 0 1 2 3
 1 7 8 9
 2 13 14 15

の部分から、相手を確定できることがお分かりでしょうか。



第5話へ 第7話へ

004


vc++講義へ
vb講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座へ
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ

数学研究室に戻る