【组合数学】幻方、拉丁方、涂色问题
引言
组合数学研究的主要问题:
- 存在性问题
- 计数和分类问题
- 构造性问题
- 优化问题
幻方问题
幻方的定义

幻方:一个 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

浙公网安备 33010602011771号