偶數階幻方的快速構作
梁彩麗 梁培基
摘要: 本文給出一種構作 n(n = 4k及4k + 2) 階幻方的方法, 當 n = 4k(k = 1, 2, . . .) 時, 其構作速度之快與在紙上直接書寫自然數的速度差不多, 所以稱為“直 接書寫法”。
幻方, 就目前來說大致可分為四類: 和 幻方 [1][2]、 平方幻方 [3]、 雙重幻方 [4][5]及 功能組合幻方 [6][7]。 構作方法有十幾種, 和 幻方 (本文所述均指和幻方) 的造法更多, 在 計算機問世以前的幾千年裡, 人們用手寫筆 算 (或珠算) 來構作和計算幻方, 因此, 渴望 找到一種造法簡單速度較快的方法。 法國人 魯貝爾 1693 年發表了一種“東北法”
[3]
, 可以 極方便的造出 n = 2k + 1(k = 2, 3, . . .) 階 幻方, 對於偶數階幻方的構作, 傳統的方法是 在一個數陣的基礎上移動元素或調換元素的 位置來生成幻方, 本文給出的方法可以較方 便的造出偶數階幻方, 這個方法也適用於計 算機構作幻方。定義 1: 將 n
2
個連續自然數 1, 2, . . .,n
2
排列成一個 n 階方陣, 若每行、 每列及 兩條對角線上 n 個元素之和都等於定值 (這 個定值叫作幻和, 記作 Sn
), 這個方陣稱為幻 方, 其幻和 Sn
= n(n2
+ 1)/2。定義2: 由 n
2
個互不相同的自然數 (不 是 1, 2, . . . , n2
, 這 n2
個連續自然數) 構成 的幻方, 稱為“增廣幻方”。一. 4 k 階幻方的構作
利用下述定理可造出 n = 4k(k = 1, 2, . . .) 階幻方。
定理 1: 設 H = (h
ij
) 為 n(n = 4k; k = 1, 2, . . .) 階方陣, 若h
ij=
n(i − 1) + j i, j =
1, 2, . . . , k, 3k + 1, 3k + 2, . . . , n.
k + 1, k + 2, . . . , 3k n (n − i + 1) − j + 1 i =
1, 2, . . . , k, 3k + 1, 3k + 2, . . . , n; j = k + 1, k + 2, . . . , 3k.
k + 1, k + 2, . . . , 3k; j = 1, 2, . . . , k, 3k + 1, 3k + 2, . . . , n
88
則 H = (h
ij
) 是一個 4k 階幻方。證明: H(h
ij
) 陣的任意一行上 n 個元 素之和為n
X
j=1
h
ij
= 2k[n(i − 1) + n(n − i + 1) + 1]= 2k(n
2
+ 1) = n(n2
+ 1)/2 (i = 1, 2, . . . , n)同理可證任意一列上 n 個元素之和為
n(n
2
+ 1)/2。 由構作方法知, H = (hij
) 陣 的兩條對角線上都由 2k 個其和等於 n2
+ 1的元素對所組成, 故它們的和為
n
X
i=1
h
ii
= 2k(n2
+ 1) = n(n2
+ 1)/2 (i = 1, 2, . . . , n)。n
X
i=1
h
i,n−i+1
= 2k(n
2
+ 1) = n(n2
+ 1)/2 (i = 1, 2, . . . , n)。圖 1 與圖 2 是利用上述方法造出的 4 階 與 8 階幻方, 圖中的虛線為“井”字形分塊線。
1 12 8 13
15 6 10 3
14 7 11 2
4 9 5 16
.. . .. .. . .. .. . .. . .. .. . .. .. . .. .. . .. . .. .. . .. .. . .. .. . .. . .. .. . .. .. .. . . .. .. . .. .. .. . . .. .. .. . .. .. . . .. .. .. . .. .. . . .. .. .. . .. .. . . .. .
.. . .. .. . .. .. . .. . .. .. . .. .. . .. .. . .. . .. .. . .. .. . .. .. . .. . .. .. . .. .. .. . . .. .. . .. .. .. . . .. .. .. . .. .. . . .. .. .. . .. .. . . .. .. .. . .. .. . . .. .
... ...
1 9 48 40 32 24 49 57
2 10 47 39 31 23 50 58
62 54 19 27 35 43 14 6
61 53 20 28 36 44 13 5
60 52 21 29 37 45 12 4
59 51 22 30 38 46 11 3
7 15 42 34 26 18 55 63
8 16 41 33 25 17 56 64
.. . .. .. . .. .. . .. . .. .. . .. .. . .. .. . .. . .. .. . .. .. . .. .. . .. . .. .. . .. .. .. . . .. .. . .. .. .. . . .. .. .. . .. .. . . .. .. .. . .. .. . . .. .. .. . .. .. .. . .. . .. . .. .. .. . .. . .. .. . .. .. . .. . .. .. . .. .. . .. . .. .. .. . .. . .. . .. .. .. . .. . .. .. . .. .. . .. . .. .. .. . .. . .. . .. .. .. . .. .. . .. . .. .. . .. .. . .. .. . .
.. . .. .. . .. .. . .. . .. .. . .. .. . .. .. . .. . .. .. . .. .. . .. .. . .. . .. .. . .. .. .. . . .. .. . .. .. .. . . .. .. .. . .. .. . . .. .. .. . .. .. . . .. .. .. . .. .. .. . .. . .. . .. .. .. . .. . .. .. . .. .. . .. . .. .. . .. .. . .. . .. .. .. . .. . .. . .. .. .. . .. . .. .. . .. .. . .. . .. .. .. . .. . .. . .. .. .. . .. .. . .. . .. .. . .. .. . .. .. . .
.
... .
...
圖 1. S
4
= 34 圖 2. S8
= 260為了便於記憶, 我們將上述定理編成下 述歌訣:
方陣分為井字形, 四角中心順序行, 其餘 四邊逆序寫, 4k 階幻方便刻成。
二. 4 k + 2 階幻方的構作
當 n = 4k + 2(k = 1, 2, . . .) 時, 我 們把 n 階方陣分為兩部分—–外層部分與中 心部分, 外層部分包括第 1 行、 第 n 行與第 1 列、 第 n 列; 中心部分包括第 2, 3, . . . , n−1
行與第 2, 3, . . . , n − 1 列 (其實是一個 4k 階方陣), 這個方法稱為“分層法”。
圖 3 是用“分層法”造出的 6 階幻方 (其
內層是一個 4 階增廣幻方)。
1 6 8 35 28 33
34 11 22 18 23 3
32 25 16 20 13 5
30 24 17 21 12 7
10 14 19 15 26 27
4 31 29 2 9 36
. .. .. . .. . .. .. . .. .. . .. .. . .. . .. .. . .. .. .. . .. . .. . .. .. .. . .. . .. .. . .. .. . .. . .. .. . .. .. . .. . .. .. .. . .. . .. . .. .. .. . .. . .. .. . .. .. . .. . .. .
. .. .. . .. . .. .. . .. .. . .. .. . .. . .. .. . .. .. .. . .. . .. . .. .. .. . .. . .. .. . .. .. . .. . .. .. . .. .. . .. . .. .. .. . .. . .. . .. .. .. . .. . .. .. . .. .. . .. . .. .
... ...
1 6 8 11 18 88 85 99 92 97
98 19 27 66 58 50 42 67 75 3
96 20 28 65 57 49 41 68 76 5
94 80 72 37 45 53 61 32 24 7
89 79 71 38 46 54 62 31 23 12
84 78 70 39 47 55 63 30 22 17
14 77 69 40 48 56 64 29 21 87
15 25 33 60 52 44 36 73 81 86
10 26 34 59 51 43 35 74 82 91
4 95 93 90 83 13 16 2 9 100
. .. .. . .. . .. .. . .. .. . .. .. . .. . .. .. . .. .. .. . .. . .. . .. .. .. . .. . .. .. . .. .. . .. . .. .. . .. .. . .. . .. .. .. . .. . .. . .. .. .. . .. . .. .. . .. .. . .. . .. .. .. . .. . .. . .. .. .. . .. .. . . .. .. .. . .. .. . . .. .. .. . .. .. . . .. .. .. .. . .. . . .. .. .. .. . .. .. . .. . .. .. . .. .. . .. . .. .. . .. .. . .. .. . .. . .. .. . .. .. .
. .. .. . .. . .. .. . .. .. . .. .. . .. . .. .. . .. .. .. . .. . .. . .. .. .. . .. . .. .. . .. .. . .. . .. .. . .. .. . .. . .. .. .. . .. . .. . .. .. .. . .. . .. .. . .. .. . .. . .. .. .. . .. . .. . .. .. .. . .. .. . . .. .. .. . .. .. . . .. .. .. . .. .. . . .. .. .. .. . .. . . .. .. .. .. . .. .. . .. . .. .. . .. .. . .. . .. .. . .. .. . .. .. . .. . .. .. . .. .. .
.
... .
...
圖 3. S
6
= 111 圖4. S10
= 505當 k > 1 時, 設 A = (a
ij
) 為 4k + 2(k = 2, 3, . . .) 階幻方, 其構作方法 按如下步驟進行:外層部分的構作
1. 先將 1, 2, . . . , 10 這十個元素按表 1 所示固定在各自的位置上, 使第1行 (列)、 第 n 行 (列) 上 3 個元素之和都等於 15。
j 1 n n − 1 2 — 4 n 1
a ij 1 4 10 3 5 7 2 9 6 8
i 1 n n − 2 n − 1 2 3
外層的其它元素按下列規則填寫:
a
ij
=
11, 12, . . . , k + 9 (i = 4, 5, . . . , k + 2; j = 1) k + 10, k + 11, . . . , 2k + 8 (i = n; j = 5, 6, . . . , k + 3) 2k + 9, 2k + 10, . . . , 3k + 7 (i = 2k + 2, 2k + 3, . . . , 3k; j = n
3k + 8, 3k + 9, . . . , 5k + 5 (i = 1; j = 2k + 3, 2k + 4, . . . , 4k) 5k + 6, 5k + 7, . . . , 6k + 4 (i = 3k + 1, 3k + 2, . . . , 4k − 1; j = n) 6k + 5, 6k + 6, . . . , 7k + 3 (i = n; j = k + 4, k + 5, . . . , 2k + 2) 7k + 4, 7k + 5, . . . , 8k + 2 (i = k + 3, k + 4, . . . , 2k + 1; j = 1
此時填寫完了外層各邊上的
1
2
個元素,各邊元素之和都等於
(k − 1)(8k + 13) + 15 = 8k
2
+ 5k + 2。2. 令左 (右) 上角與右 (左) 下角對稱 的兩元素之和等於 n
2
+ 1, 令每行 (列) 關於 本行 (列) 水平 (垂直) 對稱的兩元素之和都 等於 n2
+ 1。中心部分的構作
按照定理 1 提供的方法, 構作一個 4k 階增廣幻方 B = (b
ij
), 其元素由 2n − 1, 2n, . . . , n2
− 2n + 2 所組成, 容易證明 B = (bij
) 陣的每行、 每列及兩條對角線上 諸元素之和為 2k(2n − 1 + n2
− 2n + 2) = 2k(n2
+ 1)。 我們把 B = (bij
) 陣作為 A = (aij
) 陣的中心部分:(b
ij
) = a(i + 1, j + 1)圖 4 是利用“分層法”造出的 10 階幻方。
現在來證明 A = (a
ij
) 是 4k + 2(k >1) 階幻方。
由於構成 A = (a
ij
) 陣的元素是由 n2
個連續自然數 1, 2, . . . , n2
所組成的, 故只須 證明 A = (aij
) 陣的每行、 每列及兩條對角 線上 n 個元素之和都等於幻方的幻和即可。(i) 外層部分: 由構作方法知, A = (a
ij
) 陣的第 1 行、 第 n 行與第 1 列、 第 n 列上 n 個元素之和都等於 n(n2
+ 1)/2, 故 它們各自的元素之和都等於幻方的幻和。(ii) A = (a
ij
) 陣的第 2 行至第 n − 1 行, 各行中 n 個元素之和為n
X
j=1
a
ij
= 2k(n2
+ 1) + n2
+ 1= (2k + 1)(n
2
+ 1)= n(n
2
+1)/2 (i = 2, 3, . . . , n−1) 同理可證 A = (aij
) 陣的第 2, 3, . . . , n − 1 列及兩條對角線上 n 個元素之都等於 n(n2
+ 1)/2。所以, 利用上述“分層法”造出的 n 階方 陣 A = (a