魔方陣3
6,8次を除く2 * n + 2 次魔方陣の場合
6 , 8 次以外の場合についての2 * n + 2 次半魔方陣の構成法を説明しよう。
そのためにまず次の概念を導入する。
半魔方陣の i 行 j 列の数を( i , j )で表すものとする。
[定義]
(i , (k + i) (mod n)) (i = 0 , 1 , 2, ... , n -1) のn個の文字及び
(i , (k - i) (mod n)) (i = 0 , 1 , 2, ... , n -1) のn個の文字が
任意の k に対して、すべて異なる文字となるような半魔方陣を完全半魔方陣と呼ぶことにする。
たとえば次の半魔方陣は完全である。
たとえば(2,1)のdをみるとそこから斜め右下にd , c , b , a となりそして上に戻ってeとなっている。つまりd , c, b ,a ,eですべて異なっている。
このようになる場合を完全という。
別の見方をすればこの5次半魔方陣を並べてみたものを考えて、
どの5*5マスの枠で切り取っても半魔方陣になっているものである。
前回の定理によって構成された半魔方陣は完全半魔方陣となる。
n次完全半魔方陣が与えられたとき、2*n次半魔方陣を構成することが出来る。
たとえば10次魔方陣の素魔方陣の構成方法について考えてみよう。
まず5半魔方陣を考える。 たとえば次のものである。
これを 5 * 5 正方形マスから拡張してみる。つまり次のように下にもう一行、第 1 行と同じものを加える。
(図0)
このaの位置に
のマスをいれ、bの位置に
のマスをいれ、
同様にcの位置に 5 - 6 マス dには 7 - 8 マス、eには 9 - 10 マスをいれる。
すると次のようになる。
(図1)
上の図で赤い枠に囲まれた部分を考える。赤枠の10*10正方形マスでは、各行、各列の和が等しくなっている。 しかし対角線上の数の和は、異なっている。そこで次の操作をすることによって、対角線上の数の和が各列の和と等しくなるようにする。
上の図を作るときに用いた
のような マスをブロックと呼ぶことにする。
まず、赤枠の対角線を引いてみる。
(図2)
左上の角から対角線に沿って見ていこう。2、8、10、6ときて再び8が出てくる。このときこの8を含むブロックを考える。
最初に出てくる7-8ブロックの7と8を交換する。つまりの
部分を
にするわけである。
このようなブロックの変換を対角線で2度出てくる数字のブロックの一方に適用する。
ただしその適用には制限があって、2つの対角線が関わるブロック及び、対角線の端にあるブロックには変換を適用せず、他方のブロックに適用する。
2つのブロックとも対角線の端または2つの対角線に関わるブロックである場合は完全半魔方陣の場合存在しないのでその操作は実行できる。(証明は後で)
そのようにしていき対角線上に同じ数字が2回現れないようにする。
すると次のようになる。
(図3)
さて、今度は反対側の対角線を考える。右上から対角線に沿って見ていく。
(図4)
こちらの場合も先ほどと同様の操作をしていく。
(図5)
これにより10次半魔方陣が完成する。(この魔方陣は完全半魔方陣ではない)
(図6)
さてこの方法で6次以外の任意の4*n+2次半魔方陣を生成することができるかを検討したいと思う。
まず(図1)のように(2*n)*(2*n)の正方形マスを拡張したとき そのひとつの対角線上には、同じ数字が2つ現れること示す。
(証明)赤い枠の対角線は各ブロックの右上の部分と左下の部分を通り、右上の部分と左下の部分は同じ数字だから対角線上にはブロックのどちらか一方の数字しか現れない。
半魔方陣の完全性により対角線上には2回ずつ同じブロックが現れる。
ブロックに対しひとつの数字が対応していることよりひとつの対角線上には同じ数字が2回現れる。
さて、(図4)の場合のように一方の対角線上の調整をして、もう一方の対角線の調整のとき、交換すべきブロックが 前の対角線の調整にかかわっていることがある。そのためそのブロックではなく、もう一方のブロックを交換するのだが、そのブロックは前の対角線の調整にかかわっていることはない。なぜならば、2つの対角線にかかわるブロックは2つしかなくそれらは隣り合っているためである。
さらに問題となるのは、2つの対角線にかかわるブロックが対角線の端にこないことをチェックしなければならない。
なぜならば、対角線の両端は同じ種類のブロックであるので、交換できないからだ。
ここで (図0)の素魔方陣の対角線を考えれば、2つの対角線にかかわるブロックは対角線の両端にこないことがわかる。
よって素魔方陣をつくることができた。
PR