魔阵是用自然数1,2,3,…n2填n阶方阵的各个元素位置,使方阵的每行的元素之和、每列元素之和及主对角线元素之和均相等。奇数阶魔阵的一个算法是将自然数数列从方阵的中间一行最后一个位置排起,每次总是向右下角排(即A[i,j]的下一个是A[i+1,j+1])。但若遇以下四种情形,则应修正排数法。
(1) 列排完(即j=n+1时),则转排第一列;
(2) 行排完(即i=n+1时),则转排第一行;
(3) 对A[n,n]的下一个总是A[n,n-1];
(4) 若A[i,j]已排进一个自然数,则排A[i-1,j-2]。
例如3阶方阵,则按上述算法可排成:
4 3 8
9 5 1
2 7 6
3
4 3 8
9 5 1
2 7 6