3×3の魔方陣

 久しぶりの数学ネタ。数学ネタは書き起こすのがなかなかツライから相当やる気がないと書く気にならない。

 3×3の魔方陣は本質的に1パターンしか存在しないのだけど、テキトーに埋めてくと解けてしまうから普通はわざわざ証明とか導出とかしない。今回は敢えて効率の悪い導出過程を開陳する。
 魔方陣を行列に見立てて、横方向の並びを「行」、縦方向の並びを「列」と言うことにする。
 正解は次のようになる。

276
951
438

 見ての通り、縦横斜めを足すとどれも15になる。一般的にn×nの魔方陣の1列の合計は1~n2を全て足し合わせてnで割った値となる。

 3×3の場合だと、
   3(32+1)/2 = 3×10/2 = 15
 となる。

 そんなわけで、1~9の数値を3つ並べて合計15になる組み合わせを書き出す。
(1,5,9)
(1,6,8)
(2,4,9)
(2,5,8)
(2,6,7)
(3,4,8)
(3,5,7)
(4,5,6)
 この8パターンが存在する。これは横の並びが3パターン、縦の並びが3パターン、斜めの並びが2パターンで合計8パターンとなるが、論理的に考えてそれ以外に解がないことに気付くと速やかに終了する。
 取り敢えず、斜めの列は無視して縦、横だけを考える。
 1,2,3は同じ行、列に存在してはいけない。これらが同じ行、列に存在してしまうと残り1つに一番大きい数字である9を置いても15に届かなくなってしまうため。同様に7,8,9が同じ行、列に存在してもいけない。2つだけで15に至ってしまうためである。
 つまりどの行、列にも1,2,3のどれか、および7,8,9のどれかが必ず配置されていなければならない。従って、1,2,3,7,8,9を含んでいない(4,5,6)は行、列となはならない。
 1を含む行、列には必ず5,8のどちらかが含まれなければならないので、(2,5,8)が行、列になることはない。
 以上2つを除くと残り6パターンとなる。この時点で、(4,5,6)(2,5,8)の2パターンが斜め、残り6パターンが行、列を構成する、と目星を付ける。
 一度、ここで6つのパターンを並べてみる。
(1,5,9)
(1,6,8)
(2,4,9)
(2,6,7)
(3,4,8)
(3,5,7)
 各数字2回ずつ登場している。重複しないように2つのグループに分ける。どちらでもよいのだけど、行のグループと列のグループができる。

グループA
(1,5,9)
(2,6,7)
(3,4,8)

グループB
(1,6,8)
(2,4,9)
(3,5,7)

 この2つのグループがそれぞれ行のグループ、列のグループとなる。
 ここまで分かったので、次はテキトーに並べてみる。
 グループAが行、グループBが列になるように並べればよい。
 まず、グループAの順番で並べる。

159
267
348

 これだと、列の和が15にならないので並び替える。行は合計15になっているので行内で順番を変えても問題はない。
 列をグループBの組み合わせにする。

159
672
834

 これで、行、列ともに和が15になった。
 まだ斜めが揃っていないので、斜めを揃えないといけない。斜めのパターンは(4,5,6)と(2,5,8)の2つなので、こうなるように合わせる。
 合わせ方は行を丸ごと入れ替える。あるいは、列を丸ごと入れ替える。こうすると縦横の合計は変わらない。
 (4,5,6)と(2,5,8)で共通となる5が中心に来ることがわかるので、1行目と2行目を入れ替える。

672
159
834

 完成。一番上と少し違うが、左右に線対称の形にしてやれば同じになる。「本質的に」1種類しかないというわけ。

 3×3の魔方陣はこうして解けるけど、4×4になると、1行の合計である34となる組み合わせだけで88通りになり、魔方陣に至っては880通りというどうしようもない数が存在するため同じようには解くのはあまりにも非効率。
 特に解法とか思い付かないので今回はここまで。

関連エントリー
 20150412 魔方陣の対称性による計算の効率化
 20140308 高校生が筑波大のスパコンを使い、「5×5魔方陣」を解明