■魔方陣の魔法(その1)

 n×n個の升目に1〜n^2までの数を入れ,各行各列の合計が

  n(n^2+1)/2

になるように並べたものが「魔方陣」である.よく知られたパズルであるから誰しも試行錯誤したことがあるに違いない.3次の魔方陣では,まず真ん中のコマに5を入れて・・・等々.

 ただし,ここでは対角線の和がそうなることは要求しないことにする.たとえば,

  [1,5,9]

  [8,3,4]

  [6,7,2]

は3次の魔方陣であり,縦の並びも横の並びもその和はすべて15となっている.

===================================

  [参]内田伏一「魔方陣にみる数のしくみ」日本評論社

にしたがって,奇数次魔方陣の一般的な作り方を示すと

(1)たとえば,中央升の真下に1を置く

(2)右斜め下の升に順に数を配置していく

(3)枠外に飛び出す場合は平行移動した升に数を配置する

(4)既に数が配置されている場合は,その升の左斜め下に次の数を配置する

  [11,24, 7,20, 3]

  [ 4,12,25, 8,16]

  [17, 5,13,21, 9]

  [10,18, 1,14,22]

  [23, 6,19, 2,15]

はこのようにして作った5次の魔方陣である.奇数次の魔方陣についてはこの方法で必ず魔方陣を作ることができる.

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

 4次の魔方陣の場合,作り方はまったく異なっていて

(1)1〜16までを順に並べる

(2)4隅と中央の4升を動かさず,他の数を中心に対して対称の位置にある升目に移動させる

  [ 1, 2, 3, 4]   [ 1,15,14, 4]

  [ 5, 6, 7, 8] → [12, 6, 7, 9]

  [ 9,10,11,12]   [ 8,10,11, 5]

  [13,14,15,16]   [13, 3, 2,16]

 偶数次の魔方陣の作り方としては,4の倍数の場合(4k:複偶数)と4で割り切れない場合(4k+2:単偶数)に分けられるのだが,一般的な4k次の魔方陣の作り方は

(1)1から16k^2までの数を順に並べる

(2)4k×4kの表を縦横に4等分し,16個のk×kの表に分割する

(3)この16個の小方陣について,4次の魔方陣を作ったときと同じ操作を加える

  [ 1, 2,62,61,60,59, 7, 8]

  [ 9,10,54,53,52,51,15,16]

  [48,47,19,20,21,22,42,41]

  [40,39,27,28,29,30,34,33]

  [32,31,35,36,37,38,26,25]

  [24,23,43,44,45,46,18,17]

  [49,50,14,13,12,11,55,56]

  [57,58, 6, 5, 4, 3,63,64]

はこのようにして作った8次魔方陣の例である.

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

 4k+2次の魔方陣は,4k次の魔方陣を作ってからその周りを作るのであるが,たとえば6次の魔方陣の場合,

(1)1から36までの数の中から中央にある11から26までを使って4次の魔方陣(すなわち,先に作った4次の魔方陣の各成分に10加えたもの)を作る

(2)その外周に,上辺,下辺,左辺,右辺の6数の和が111となり,4隅に関しては中心に関して点対称の位置にある2数の和が37,上下または左右に向き合った2数の和が37となるように数を配置する

  [ 5,28,36,35, 3, 4]

  [31,11,25,24,14, 6]

  [ 7,22,16,17,19,30]

  [ 8,18,20,21,15,29]

  [27,23,13,12,26,10]

  [33, 9, 1, 2,34,32]

 これを一般化すると,n=4k+2の場合

(1)1〜n^2=(4k+2)^2までの数の中から中央にある2n−1=8k+3からn^2−2n+2=16k^2+8k+2までを使って4k次の魔方陣を作る

(2)その外周に,上辺,下辺,左辺,右辺の6数の和がn(n^2+1)/2となり,4隅に関しては中心に関して点対称の位置にある2数の和がn^2+1,上下または左右に向き合った2数の和がn^2+1となるように数を配置する

 この作り方は1683年,和算家の関孝和が発表したものとのことであり,

  [参]内田伏一「魔方陣にみる数のしくみ」日本評論社

にはk=1,2,3すなわちn=6次,10次,14次の魔方陣が紹介されている.

===================================