4k 階全對 稱幻方的一種快速構作方法
梁培基 張航輔
1. 引言
在 n 階方陣 A = (aij) 中, 我們分別稱
n−p
X
j=1
aj+p,j +
n
X
j=n+1−p
aj+p−n,j 與
n−p
X
j=1
an+1−p−j,j+
n
X
j=n+1−p
a2n+1−p−j,j (p = 1, 2, · · ·)
為 A 的左與右折斷對角線元素和。
定義: 將連續自然數 1, 2, · · · , n2 排成一個 n 階方陣, 如果它的每行、 每列及每條對角線 (包括折斷對角線) 上n個元素之和均為定值 n(n2+ 1)/2, 則稱此方陣為 n 階全對稱幻方。
2. 4k階全對稱幻方的快速構作方法
將 n = 4k 階方陣 A = (aij) 分成 4 × 4 個 k 階子方陣
A =
A11 A12 | A13 A14
A21 A22 | A23 A24
− − − + − − − A31 A32 | A33 A34
A41 A42 | A43 A44
根據下式確定出各子陣中最小元素的值與位置 [下面, 我們用 apqij (p, q = 1, 2, 3, 4; i, j =
1
1, 2, · · · , k) 表示位於子陣 Apq 中第 i 行 j 列處的元素];
a1111= 1 a311k = n2+ 1 − a131k = n2+ 1 − 11k2 a1211= 13k2+ 1 a321k = n2+ 1 − a141k = n2+ 1 − 8k2 a13k1 = 10k2+ 1 a33kk = n2+ 1 − a11kk = n2+ 1 − k2 a14k1 = 7k2+ 1 a34kk = n2+ 1 − a12kk = n2+ 1 − 14k2 a2111= 11k2+ 1 a411k = n2+ 1 − a231k = n2+ 1 − 2k2 a2211= 6k2+ 1 a421k = n2+ 1 − a241k = n2+ 1 − 13k2 a23k1 = k2+ 1 a43kk = n2+ 1 − a21kk = n2+ 1 − 12k2 a24k1 = 12k2+ 1 a44kk = n2+ 1 − a22kk = n2+ 1 − 7k2
(1)
然後, 按照如下法則, 分別從各子陣中的最小元素出發, 依次遞增 1, 填寫出該子陣中的 k2 個元素 [下面各 aij (i, j = 1, 2, · · · , k) 的下標均為元素在指定子陣中的行列座標]
在子陣 A11, A12, A21, A22 中, 元素按列的順序
a11, a21, . . . , ak1, a12, a22, . . . , ak2, . . . , a1k, a2k, . . . , akk
從上至下, 依次遞增 1;
在子陣 A13, A14, A23, A24 中, 元素按列的順序
ak1, ak−1,1, . . . , a11, ak2, ak−1,2, . . . , a12, . . . , akk, ak−1,k, . . . , a1k
從下至上, 依次遞增 1;
在子陣 A31, A32, A41, A42 中, 元素按列的逆序
a1k, a2k, . . . , akk, a1,k−1, a2,k−1, . . . , ak,k−1, . . . , a11, a21, . . . , ak1
從上至下, 依次遞增 1;
在子陣 A33, A34, A43, A44 中, 元素按列的逆序
akk, ak−1,k, . . . , a1k, ak,k−1, ak−1,k−1, . . . , a1,k−1, . . . , ak1, ak−1,1, . . . , a11
從下至上, 依次遞增 1。
這樣我們就構作出一個 4k 階全對稱幻方 A。
為便於記憶填寫順序, 我們可將方陣 A 等分為 4 塊, 利用模擬圖
1 3 | 2 4
2 4 | 1 3
− − + − −
3 1 | 4 2
4 2 | 3 1
來幫助記憶每塊中 4 個子陣內元素的遞增排列順序。 因此, 我們也可稱這種方法為“模擬圖法”。
從 (1) 式可見, 在具體構作過程中, 我們也可先將 A 方陣的上半部份構造出來, 然後分別 用 n2 + 1 減去上半部各子陣 A13, A14, A11, A12, A23, A24, A21, A22 中的最大元素, 即可 依次得出下半部份各子陣 A31, A32, A33, A34, A41, A42, A43, A44 中的位於相同位置處的最 小元素。
下面, 我們給出根據上述方法構作出來的 8 階全對稱幻方的實例:
1 3 53 55 42 44 30 32 2 4 54 56 41 43 29 31 45 47 25 27 6 8 50 52 46 48 26 28 5 7 49 51 23 21 35 33 64 62 12 10 24 22 36 34 63 61 11 9 59 57 15 13 20 18 40 38 60 58 16 14 19 17 39 37
其實, 用上述方法構作的 4k階全對稱幻方 A = (aij) 完全等價於下列計算公式:
aij =
(j − 1)k + i 1 ≤ i ≤ k, 1 ≤ j ≤ k 12k2+ (j − 1)k + i 1 ≤ i ≤ k, k + 1 ≤ j ≤ 2k 8k2+ jk − i + 1 1 ≤ i ≤ k, 2k + 1 ≤ j ≤ 3k 4k2+ jk − i + 1 1 ≤ i ≤ k, 3k + 1 ≤ j ≤ n 11k2+ (j − 2)k + i k + 1 ≤ i ≤ 2k, 1 ≤ j ≤ k 5k2+ (j − 2)k + i k + 1 ≤ i ≤ 2k, k + 1 ≤ j ≤ 2k
−k2+ (j + 1)k − i + 1 k + 1 ≤ i ≤ 2k, 2k + 1 ≤ j ≤ 3k 9k2+ (j + 1)k − i + 1 k + 1 ≤ i ≤ 2k, 3k + 1 ≤ j ≤ n n2− 10k2− (j + 2)k + i 2k + 1 ≤ i ≤ 3k, 1 ≤ j ≤ k n2− 6k2− (j + 2)k + i 2k + 1 ≤ i ≤ 3k, k + 1 ≤ j ≤ 2k n2− 2k2− (j − 3)k − i + 1 2k + 1 ≤ i ≤ 3k, 2k + 1 ≤ j ≤ 3k n2− 10k2− (j − 3)k − i + 1 2k + 1 ≤ i ≤ 3k, 3k + 1 ≤ j ≤ n n2− k2− (j + 3)k + i 3k + 1 ≤ i ≤ n, 1 ≤ j ≤ k n2− 11k2− (j + 3)k + i 3k + 1 ≤ i ≤ n, k + 1 ≤ j ≤ 2k n2− 9k2− (j − 4)k − i + 1 3k + 1 ≤ i ≤ n, 2k + 1 ≤ j ≤ 3k n2− 3k2− (j − 4)k − i + 1 3k + 1 ≤ i ≤ n, 3k + 1 ≤ j ≤ n
(2)
利用 (2) 式可計算出任一指定階數的 n = 4k 階全對稱幻方中的任意元素, 這給用計算機 編程構作全對稱幻方提供了很大的方便。
3. 構作方法的證明
在下述證明過程中, 我們要多次用到首項為 a1, 公差為 d 的等差數列的第 m1+ 1 ∼ m2
項和的公式:
Sm1+1∼m2 = (m2− m1)(a1+ m1+ m2− 1
2 d) (3)
此式易由等差數列的前 n 項和公式推出。
下面我們按行、 列與對角線分為 3 個方面來證明根據上述方法構作出來的 n = 4k 階方 陣 A = (aij) 為全對稱幻方。
(1) 當 1 ≤ i ≤ k 時, 由 (2) 與 (3) 式可得
n
X
j=1
aij =
n
X
j=1
[(j − 1)k + i] +
2k
X
j=k+1
[12k2+ (j − 1)k + i] +
3k
X
j=2k+1
(8k2+ jk − i + 1)
+
n
X
j=3k+1
(4k2+ jk − i + 1)
= k[(k − 1)k
2 + i] + k[12k2+(3k − 1)k
2 + i] + k[8k2+ k + (5k − 1)k
2 − i + 1]
+k[4k2+ k + (7k − 1)k
2 − i + 1]
= k(32k2 + 2)
= n(n2+ 1)/2
當 k + 1 ≤ i ≤ 2k 時, 由 (2) 與 (3) 可得
n
X
j=1
aij =
k
X
j=1
[11k2+ (j − 2)k + i]
2k
X
j=k+1
[5k2+ (j − 2)k + i] +
3k
X
j=2k+1
[−k2+ (j + 1)k − i + 1]
+
n
X
j=3k+1
[9k2+ (j + 1)k − i + 1]
= k[11k2− k + (k − 1)k
2 + i] + k[5k2− k + (3k − 1)k 2 + i]
+k[−k2+ 2k + (5k − 1)k
2 − i + 1] + k[9k2+ 2k + (7k − 1)k
2 − i + 1]
= k(32k2 + 2) = n(n2+ 1)/2
由 (1) 式顯然可知, A 的第 2k + 1 ∼ n 行中的每個元素分別與第 1 ∼ 2k 行中的一個 元素之和為 n2+ 1, 而且它們是一一對應的, 因此, 當 2k + 1 ≤ i ≤ n 時
n
X
j=1
aij =
n
X
j=1
[(n2+ 1) − ai−2k,j]
= n(n2+ 1) − n(n2 + 1)/2 = n(n2+ 1)/2
從而可知, A 的各行元素之和均為 n(n2+ 1)/2。
(2) 由 (2), (3) 式可知, 當 1 ≤ j ≤ k 時
n
X
i=1
aij =
k
X
i=1
[(j − 1)k + i] +
2k
X
i=k+1
[11k2+ (j − 2)k + i] +
3k
X
i=2k+1
[n2− 10k2− (j + 2)k + i]
+
n
X
i=3k+1
[n2 − k2− (j + 3)k + i]
= k[(j − 1)k + k + 1
2 ] + k[11k2+ (j − 2)k + 1 + 3k − 1 2 ] +k[n2 − 10k2− (j + 2)k + 1 + 5k − 1
2 ] + k[n2− k2− (j + 3)k + 1 + 7k − 1 2 ]
= k(2n2+ 2) = n(n2+ 1)/2
當 k + 1 ≤ j ≤ 2k 時
n
X
i=1
aij =
k
X
i=1
[12k2+ (j − 1)k + i] +
2k
X
i=k+1
[5k2+ (j − 2)k + i]
+
3k
X
i=2k+1
[n2 − 6k2− (j + 2)k + i] +
n
X
i=3k+1
[n2− 11k2− (j + 3)k + i]
= k[12k2+ (j − 1)k + k + 1
2 ] + k[5k2+ (j − 2)k + 1 + 3k − 1 2 ] +k[n2 − 6k2− (j + 2)k + 1 + 5k − 1
2 ] + k[n2 − 11k2− (j + 3)k + 1 + 7k − 1 2 ]
= k(2n2+ 2) = n(n2+ 1)/2
當 2k + 1 ≤ j ≤ 3k 時
n
X
i=1
aij =
k
X
i=1
(8k2+ jk − i + 1) +
2k
X
i=k+1
[−k2 + (j + 1)k − i + 1]
+
3k
X
i=2k+1
[n2 − 2k2− (j − 3)k − i + 1] +
n
X
i=3k+1
[n2− 9k2− (j − 4)k − i + 1]
= k[8k2+ jk − k − 1
2 + 1] + k[−k2(j + 1)k − 3k − 1 2 ] +k[n2 + 2k2− (j − 3)k − 5k − 1
2 ] + k[n2− 9k2− (j − 4)k − 7k − 1 2 ]
= k(2n2+ 2) = n(n2+ 1)/2
當 3k + 1 ≤ j ≤ 3k 時
n
X
i=1
aij =
k
X
i=1
(4k2+ jk − i + 1) +
2k
X
i=k+1
[9k2+ (j + 1)k − i + 1]
+
3k
X
i=2k+1
[n2 − 10k2− (j − 3)k − i + 1] +
n
X
i=3k+1
[n2− 3k2− (j − 4)k − i + 1]
= k(4k2+ jk − k − 1
2 + 1) + k[9k2+ (j + 1)k −3k − 1 2 ] +k[n2 − 10k2− (j − 3)k − 5k − 1
2 ] + k[n2− 3k2− (j − 4)k − 7k − 1 2 ]
= k(2n2+ 2)
= n(n2+ 1)/2
即 A 的各列的 n 個元素之和為 n(n2+ 1)/2。
(3) 由上述構作方法可知, A 的子陣 A13, A14, A11, A12, A23, A24, A21, A22 分別依次 與子陣 A31, A32, A33, A34, A41, A42, A43, A44 中各對應位置處的兩元素之和為 n2+ 1。 因 此, 顯而易見 A 的各左、 右對角線及折斷對角線上 n 個元素恰由 n/2 對和為 n2 + 1 的元素 對所組成, 故其和均為 n(n2+ 1)/2。
綜合 (1), (2), (3), 我們已證按照上述方法構作的 4k 階方陣 a = (aij) 為全對稱幻方。
—本文作者分別任教於中國河南省封丘縣科協和雲南民族學院數學系—