魔方陣の個数の公式

方陣っていうのは、ご存じの方も多いと思いますが、n×n マスに 1〜n^2 までの数が入っていて、縦、横、斜めのマスの数の和が等しくなっているものを言います。
例えば、3×3 の魔方陣には次のようなものがあります。
\begin{matrix}8 & 1 & 6 \\ 3 & 5 & 7 \\ 4 & 9 & 2\end{matrix}
方陣の個数は、n=5 までは完ぺきに求められているそうなのですが、n=6 となると、正確な数が分かっていないそうなのです。
それから、n×n マスの魔方陣の個数を求める公式も発見されていないとか何とか。
そこで、調子に乗って、公式を作ってみました。
まず、縦、横、斜めのマスの数の和ですが、これは次のようになります。
\frac{1}{n}\sum_{i=1}^{n^2}i = \frac{1}{2}n(n^2+1)
次に、各マス目に次のように番号をつけます。
\begin{matrix}1 & 2 & \cdots & n \\ n+1 & n+2 & \cdots & 2n \\ \vdots & \vdots & & \vdots \\ n^2-n+1 & n^2-n+2 & \cdots & n^2\end{matrix}
さて、各マスに 1〜n^2 までの数を割り振るわけですが、そのためには n^2 から n^2 への全単射関数、すなわち置換が必要になるわけです。
そこで、まずは n^2 から n^2 への全ての関数を考えます。
これらに適当に順序付けをして、k 番目の関数に i を代入したときの値を求める関数は、m=n^2 として、次のように構成できます。
\rm{F}(m,k,i)=\rm{Mod}(\rm{Quotient}(k-1,m^{m-i}),m)+1
証明は面倒なので省略(自分で証明はしました)。
例えば、m=4 のとき、各 k について F(4,k,1), F(4,k,2), F(4,k,3), F(4,k,4) を計算してみると、次のようになります。
k=1〜4: (1,1,1,1),(1,1,1,2),(1,1,1,3),(1,1,1,4),
k=5〜8: (1,1,2,1),(1,1,2,2),(1,1,2,3),(1,1,2,4),
…,
k=253〜256:(4,4,4,1),(4,4,4,2),(4,4,4,3),(4,4,4,4)
さて、k 番目の関数が置換であるなら 1、そうでないなら 0 を返す関数は次のようになります。
\rm{B}(n,k)=\prod_{i=1}^{n^2}\prod_{j=i+1}^{n^2}(1-\rm{D}(\rm{F}(n,k,i),\rm{F}(n,k,j))
ここで、D(i,j) はクロネッカーのデルタです。
w = \frac{1}{2}n(n^2+1) とおきます。
すると、k 番目の置換、つまり k 番目の盤面に対し、縦、横、右下がりの対角線、左下がりの対角線の和が w なら 1、そうでないなら 0 を返す関数は、それぞれ次のようになります。
\rm{T}(n,k) = \rm{D}\left(\sum_{i=0}^{n-1}\sum_{j=0}^{n-1}\rm{F}(n,k,(i+1)+nj),w\right)
\rm{Y}(n,k) = \rm{D}\left(\sum_{i=0}^{n-1}\sum_{j=0}^{n-1}\rm{F}(n,k,in+j),w\right)
\rm{M}(n,k) = \rm{D}\left(\sum_{i=0}^{n-1}\rm{F}(n,k,1+(n+1)i),w\right)
\rm{H}(n,k) = \rm{D}\left(\sum_{i=0}^{n-1}\rm{F}(n,k,n+(n-1)i),w\right)
以上により、求める公式は次のようになります。
\sum_{k=1}^{n^{2n^2}}\rm{B}(n,k)\rm{T}(n,k)\rm{Y}(n,k)\rm{M}(n,k)\rm{H}(n,k)
これで完成です。
めでたす。
(計算手順を数式で表現しただけなので、実用性は全くありません。)