引言
組合數學研究的主要問題:
- 存在性問題
- 計數和分類問題
- 構造性問題
- 優化問題
幻方問題
幻方的定義

幻方:一個 n 階幻方是由整數 1,2,3…,n^2 按下述方式 組成的 n×n 方陣:該方陣每行上的整數的和、每列上的整數的和以及兩條對角線中每條對角線上的整數的和都等於同一個數
幻和 S:每一行(或列或對角線)數字的和
幻方的存在性問題
- 不存在二階幻方(反證法)
幻方的構造性問題
奇數階幻方的構造:連續擺放法:
-
將
1放在(n+1)/2列第1行的方格中; -
按照副對角線方向(即行號減
1,列號加1)依次 把從小到大的各個數字放入相應的方格中; -
如果行號變成
0(第1行上面一行),則改成第n行相應列對應的方格; -
如果列號變成
n+1(第n列右面一列),則改成第1列相應行對應的方格; -
如果輪到的方格已經填有數字或者到了第
0行第n+1列對應的方格,則退到前一個方格正下方的方格.
🌰舉例:構造五階幻方

偶數階幻方的構造:n=4k 對稱法:
-
把
n×n的方陣分成上、下、左、右四個2k×2k的方 陣; -
處理左上的
2k×2k方陣,每行每列任意取一半(k個) 的方格做標記,塗成陰影; -
按對稱軸將陰影向下和向右作對稱圖形,使得
n×n的 方陣的每一行和每一列都有一半(n/2)的方格被塗成陰影; -
從
1開始依次填入方格中,第一遍:從第1行第1列的方格開始往右,不是陰影則填數字,是陰影的方格不填數字,但相應的數字加1. 第1行填完后填第2行依次到第n行第n列的方格; -
第二遍:從第
n行第n列的方格開始依次往左,規則同前,從1開始的數字依次填入,第n行結束之后 是第n-1行第n列的方格,直到第1行第1列的方格
🌰舉例:構造四階幻方
單偶數階幻方 n=4k+2:
-
把
n×n的方陣分成上、下、左、右四個(2k+1)×(2k+1)的方陣,編為左上A、右下B、右上C、 左下D; -
把
1~(2k+1)^2放在A中做成第一個幻方; -
把
(2k+1)^2+1~2(2k+1)^2放在B中成第二個幻方; -
把
2(2k+1)^2+1~3(2k+1)^2放在C中成第三個幻方; -
把
3(2k+1)^2+1~4(2k+1)^2放在D中成第四個幻方; -
在
A的各行從第1列開始向右取m個(m=(n-2)/4)方格, 但中間一行(k+1行)從第2列開始;把這些方格中的數字與D中相應位置的數字對換; -
在
C中各行最后一列右起向左各取m-1個方格,把這些方格中的數字與B中相應位置的數字對換
🌰舉例:構造六階幻方
- 填充
- 對換
m = (n-2)/4 = (6-2)/4 = 1
拉丁方問題
拉丁方的定義
n 階拉丁方:由數字 1,2,…,n 構成的 n×n 的方陣,使得在每 1 行、 每 1 列中每個數字都恰好出現一次.
拉丁方的存在性問題
2階拉丁方存在
拉丁方的構造性問題
n階拉丁方的構造方法:

正交拉丁方
三十六軍官問題:有 36 名軍官來自 6 個不同的軍團,共有 6 種不同的軍銜,他們能否排成一個 6*6 的方陣,使得每行每列恰有各種軍銜, 並且每行和每列上的不同軍銜的 6 名軍 官還分別來自不同的軍團?
解:從 n 個軍團里選 n 個不同的軍銜,能 否排成一個 n*n 的方陣,使得每行每列恰有各種軍銜,並且每行和每列上的不同軍銜的 n 名軍官還分別來自不同的軍團?
把問題規模縮小到三階可以得到:
正交拉丁方的定義:
- 不存在
2階正交拉丁方 36軍官問題即不存在6階正交拉丁方
塗色問題
實際應用中,很多計數問題都可抽象成塗色問題
例:對正三角形的三個頂點塗以紅、藍(r和b)兩種顏色,求有多少種不同的塗色方案?
解:
-
三點全塗紅色,只有一種
rrr; -
三點全塗藍色,只有一種
bbb; -
兩點塗紅色,一點塗藍色,藍色可分別塗於三個頂點之一,故有
3種brr,rbr,rrb; -
由對稱性可知,兩點塗藍色,一點塗紅色的方案也 有
3種rbb,brb,bbr
