这不是一本教材,而是一册入门书:全书只讲一件事——组合学,即「数一数满足某个条件的对象有多少种,并追问它们是否存在、怎样造出来」的学问。它回答的问题朴素而深刻:n 个人围一桌入座,有多少种坐法?一副扑克摸五张,有多少种同花?六个城市之间修路,最少修几条才能彼此连通?三十六个军官来自六支部队与六种军衔,能不能排成方阵使每行每列恰好「一队一衔」?从贾宪约 1050 年写下三角,到欧拉 1736 年走过七桥,再到埃尔德什的概率方法与汉明的纠错码,组合学的语言贯穿了计算、通信、概率与数学自身的许多角落。全书按章组织:绪论用棋盘、项链与宴席三件源头提炼出统一语言;第一章把计数的两条账法与二项式定理讲透;第二章锻造容斥与生成函数这把钥匙;第三章进入「必然的秩序」;第四章走进图论;第五章把对称变成可以记账的东西;第六章从存在走向构造与编码;综合站用年表、人物谱、方法总图、实验与自查收束全书。
写作的三条约束(本书的自我要求)。① 直觉与图形先行:每一个概念都从一张图、一个具体的小例子讲起——先看见方格纸上的路径如何走出三角、一串珠子转一圈为什么不算新的戴法、一张图上一笔能否画完,再抽成定义;每一个定理由「为什么它是对的」的直觉开路,再有完整的推导。② 一步一图:凡能画的都画——帕斯卡三角的数字瀑布、隔板分球的示意、Ramsey 染色的红蓝边、图的遍历足迹、项链的对称群、Fano 平面的七点七线。组合学最漂亮的地方正藏在「公式—图形—解释」的对照里:一条恒等式,画出来便一目了然。③ 自给自足:所需工具在书内随用随补(求和记号、一点同余与整除常识、一点线性代数与群论的初步、有限域的最必要知识),不假设手边另有教材;相邻领域已把区组设计与有限几何先演练了一遍,需要时可随时回望;个别深刻结论(五边形定理、Cayley 公式、设计存在性定理、四色定理)给出精确陈述、证明思路与文献指引,数值对拍在实验页随附。
页型节奏。每章以 导引 开篇(一页说清这一章要解决什么);主体是 讲义 页(概念、定理、证明,一步一图);每章配 例题 与 习题(末附提示);每章收在 地图(依赖关系)+小结+思想卡(把技术升成观念)+挑战与实验(动手核验);另有 〖札记〗格物札记做中西数学传统的对照。每页右上角标页码,页眉灰色小字标出所属章与小节。
难度标记。讲义页首行用 ★–★★★★★ 标出阅读难度:★ 会加减乘除与求和记号即可,★★ 需要一点指数律与二项式(书内自给),★★★ 需要一点同余与初等数论(书内自给),★★★★ 需要线性代数与群论的初步(书内自给),★★★★★ 需要射影几何与有限域的深水区(第六章与综合站余韵)。若只求理解主线,读绪论、第一章的二项式定理、第二章的生成函数、第三章的 Ramsey 定理、第四章的树与平面图即可;若求完整掌握,按章顺序逐页推进,并把每章习题做完。
三条线索贯穿全书:
① 明线——从数数到结构:先从棋盘、项链与宴席三件源头看见「有多少种」(绪论),把两条账法与二项式定理讲透(第一章),锻造容斥与生成函数这把钥匙(第二章),看「必然的秩序」(第三章),走进点、线、网络(第四章),把对称记账(第五章),最后从存在走到构造与编码(第六章)——这正是组合学从「数数的技巧」长成「离散数学主干」的轨迹。
② 暗线——双射·对合·双计数三把钥匙。组合学最深的功夫,是「把一个难数的集合的东西,数成另一个好数的集合的东西」:双射问「能不能在两个集合之间建立一一对应,把难数换成好数」;对合问「把对象两两配对之后,剩下的不平衡揭示了什么」(许多恒等式一行证完);双计数问「同一件事用两种方式数,两边相等的等式告诉我们什么」。三者不是替代关系,而是配合关系——能对应就对应,配对剩下的单独看,两种数法摆在一起读。全书反复演练的,正是这种「三把钥匙轮换使用」的判断力。
③ 接口——通往四个邻域。组合学是离散数学的枢纽:与数论(同余构造与整除分析,第一、三章)、概率论(等可能模型与随机方法,第一、三章)、图论(结构、着色与算法,第四至六章)、代数(群作用与对称计数,第五章;有限域与设计,第六章)四条战线直接相接。相邻领域把区组设计与有限几何先演练了一遍,对照阅读,可贯通「计数」到「设计」的一条主线。
写法约定(TEX 标准):集合的元素个数记 |S|,从 n 个里取 k 个的组合数记 C(n,k) 或 nCk;排列数记 P(n,k);阶乘记 n!;变量(n、k、x)斜体,数字与运算符正体;数列记 ⟨an⟩,其生成函数记 A(x) = Σanxn;群 G 作用在集合 X 上记 g·x,图记 G = (V,E)。关键一步配图,公式与图形逐章对照。
先做三道不需要任何微积分的题。第一道:12 个人围一张圆桌入座,有多少种坐法?答案 11! = 39 916 800——近四千万种,一个宴会厅从此永远不愁花样。第二道:一副扑克摸五张,摸成「同花」的可能性有多少种?答案 4 × C(13,5) = 5148 种,而五张牌总共只有 C(52,5) = 2 598 960 种摸法——顺手一除,同花的概率不到千分之二,扑克桌上的心跳从此有了数学解释。第三道:六个城市之间修路,最少修几条才能从任何城市走到任何城市?答案五条——而且五条就是下限,一条也不能省。三道题风马牛不相及,骨子里却是同一件事:数一数满足某个条件的对象有多少种。这门学问叫组合学(combinatorics)。
它朴素,因为出发点不过是「一个一个地数」;它深刻,因为对象动辄多到不可能一个一个地数——12! 已经四千万,C(100,50) ≈ 1.01 × 1029,而宇宙中的原子总数不过 1080 上下。于是组合学的全部艺术在于:不看对象本身,只看对象的结构——找到对象之间的对称、对应与分类,让天文数字塌缩成一行式子。数得清是本分,数得妙才是本事。本册要教的,正是这份「妙」的手艺。
组合学又是最「贴身」的数学:它不假借物理直觉,起点就是纸笔可验的小账。全册几乎每个定理,读一页就能亲手复验一页——这种即学即验的踏实感,是数学里难得的奢侈。
★ 数数先于一切数学。上古结绳记事,大事结大结、小事结小结——绳子上的结是离散对象的最早账本。用符号对离散对象做系统计数,《周易》大概是现存的第一个成熟案例:阳爻与阴爻两种记号,取三个自下而上叠成一卦,得 23 = 8 卦;取六个,得 26 = 64 卦。「八卦」与「六十四卦」不是玄学,是两条原理(后世的加法原理与乘法原理)在公元前的自觉运用——每一卦的每一位有 2 种取法,位与位之间互相独立,遂按乘法相乘。
中国古算对组合学的第一座高峰,是贾宪三角。约 1050 年,北宋贾宪在《释锁算书》中给出开方用的「开方作法本源图」——把 0 至 6 次二项式展开的系数排成三角。此后杨辉于 1261 年在《详解九章算法》中载录并注明「贾宪用此术」,故中算传统称之为贾宪—杨辉三角。在西方,帕斯卡于 1654 年写《论算术三角》系统研究同一张表,距贾宪已六百年。三角里每个数 C(n,k) 都有直接的计数含义——从 n 个里挑 k 个的方法数——这张表因此成了组合学与代数的第一次会师(第一章详述)。
西方一侧同样源远流长:莱布尼茨 1666 年的《论组合的艺术》第一次把「组合」当作一门独立学问的名称;欧拉 1736 年的七桥问题开创图论;柯克曼 1850 年的十五女生问题催生区组设计;而二十世纪的埃尔德什(Erdős)与拉姆齐(Ramsey)把「存在性证明」推成一门艺术。本册的年表(综合站)会把这条时间线补全。
★ 一个问题算不算组合学问题,不看它问什么名词,看它满足三个特征。特征一:对象离散。研究对象是可数的、分立的——人的坐法、牌的组合、图的顶点与边、码字的集合;不是连续流动的量。微积分处理「怎样变化」,组合学处理「有多少种」。 特征二:问题有限(或可数)。原则上可以把对象一个一个列出来——但原则上可行往往实践上不可行,这正是需要理论的原因。特征三:追问落在四个动词之一。
四个动词不是并列的标本,而是一条递进的阶梯:先会数(计数),才知道「有」与「没有」的分界(存在);证明确实「有」,才轮到动手造(构造);造出来几个方案,才谈得上挑最好的(优化)。本书按这条阶梯组织六章,每登一级,工具箱换一批。
用一道例题把三个特征串起来。例 0.1(宴席上的握手) 十二位客人参加晚宴,散席后主人统计:每人恰好与 5 人握过手。握手次数总共多少?有没有这种可能?前者是计数(每人 5 次、十二人、每次握手两人各记一次,共 12 × 5 / 2 = 30 次——除以 2 正因为每次握手被两人各记一遍,这是第四章「握手引理」的预演);后者是存在(这样的事真的安排得出来吗?能,画一个正十二边形,每人只与左右各两位及正对面一位握手即可)。一道题里,计数与存在并肩出现——组合学问题的常态。
还要划清一条边界:组合学不等于「穷举」。穷举是对抗性的——对象一多立刻失效;组合学是建设性的——它寻找对象集合上的结构(对称、序、对应、递推),让答案的规模与对象总数脱钩。C(100,50) 有 1029 那么大,但计算它只需几十次乘法:结构压倒了规模。这种「以结构对规模」的思路,贯穿全书每一章。
★★ 正式开课之前,先陪三道「本章能看懂题、全册学完才彻底服气」的问题。它们各自把一根线头递给后面的一章。
问题一(棋盘·递给第一章)。在 4 × 4 的方格纸上,从左下角走到右上角,每步向右或向上走一格,共有几条路?答案是 C(8,4) = 70:八步中恰好四步向右——「哪几步向右」与「哪四格被选中」一一对应,路径计数一秒变成组合数。把棋盘换成 n × n,答案 C(2n,n);若再禁走某条对角线以下,就撞上著名的 Catalan 数(第二章 2.13)。数数的钥匙常常是翻译:把一种对象翻译成另一种好数的对象。
问题二(项链·递给第五章)。五颗珠子涂黑或白,能做出多少种本质不同的项链?正面数是 25 = 32,但转一圈、翻一面不算新的——数出来的 32 有大量「同一串的影子」。答案其实是 8,但 8 这个数不对称之群就算不干净。这颗项链将在第五章被 Burnside 引理与 Pólya 定理当众解剖。
问题三(宴席·递给第三章)。任何六位客人,是否必有三人彼此都握过手,或三人彼此都没握过手?出人意料:必有,与客人的身份毫无关系。把「握手」画成两人之间的红边、「没握」画成蓝边,命题变成:六点的完全图任意红蓝染色,必出同色三角形。这是 Ramsey 定理最著名的入口(第三章 3.6–3.7 完整推演),也是「不构造而证存在」的第一课。
三道题的答案封存:70、8、必有。全册学完时回头看,三道题分别对应三把钥匙——翻译、商对称、证存在——合起来恰是组合学一半的性格。
★ 把绪论开头的问题按三个动词重新归档,全书的地形便一览无余。计数区(第一、二、五章):两条账法与二项式定理(第一章)是基本功;数不清时容斥与生成函数(第二章);对象带对称时群作用(第五章)。存在区(第三章):鸽笼原理与 Ramsey 定理证明「必然有」,概率方法证明「大概有」。构造区(第四、六章):图论把关系造成看得见的网络(第四章),区组设计与纠错码把完美结构造成可用的蓝图(第六章)。
版图上还应标出一条暗流:三把钥匙。双射——把难数的对象翻译成好数的对象(格路变组合数、树变 Prüfer 码);对合——把对象两两配对,剩下的落单者恰好给出恒等式(第一章 1.7);双计数——同一件事用两种方式数,两边相等的等式就是新定理(握手引理、Cayley 公式、Burnside 引理的证明,全是双计数)。三个动词是「做什么」,三把钥匙是「怎么做」;版图加钥匙,就是全书的经与纬。
一望邻人的疆土:组合学与数论共用同余的语言(第三章的构造)、与概率论共享等可能的舞台(第一章与第三章的概率方法)、与代数交换群与域(第五章与第六章)、而图论则自成一国又处处设使馆(第四章)。这些接口将在各章的「衔接讲义」里逐一指认。
★★ 组合学从不闭门造车。四个邻域的接口,本书都会走到门口,这里先指认门牌。
接口一:数论。整除与同余是鸽笼原理最肥沃的猎场——任何 n + 1 个整数里必有两个差是 n 的倍数(按余数分笼),第三章 3.3 与 3.10 将反复使用;第六章造设计用的有限域,本质是「带余除法」撑起来的四则运算。反过来,许多数论命题(如威尔逊定理的组合面貌)用双计数看得更清。不需要预备任何数论课程,需要的知识书内随用随补。
接口二:概率论。等可能模型里,概率 = 有利种数 / 总种数——概率计算的核心动作就是计数(第一章 1.14);而反方向更妙:给对象族随机取一个样本,证明「坏事件概率小于 1」,就白得一个「好对象存在」的定理——概率方法(第三章 3.13–3.14)是二十世纪组合学最锋利的发明之一。
接口三:图论。图是「关系」的通用画布:握手、道路、分子键、社交网络、纠错码的码字距离,统统画成点线。第四章把它当主角,第五章用它示范对称计数,第六章的 Fano 平面就是一张七点图。学完第四章回头看第三章的 Ramsey 染色,会发现那本就是图论问题。
接口四:代数。群是「对称」的户口簿:第五章把项链的旋转翻面编成二面体群,用群作用把「本质不同」算干净;第六章的有限域给出设计的坐标纸。需要的群论知识(置换、群表、轨道)在第五章开头从零搭起。
相邻领域也在此对齐:相邻领域已把区组设计与有限几何先行演练,本册第六章与之互为镜像——那里以「设计」为纲,这里以「计数与编码」为纲;相邻领域与相邻领域则示范了同一套「讲义—例题—习题—札记」体例在分析学中的样貌。四册合读,可见 K2C 正文「从格物到九章」的全景。
一句话总结四个接口:数论递给组合「余数这只笼子」,概率递给组合「骰子这杆秤」,图论递给组合「点线这张纸」,代数递给组合「对称这本账」。
★ 全书六章一线,每章的产出恰好是下一章的原料,依赖关系如下,读法也写在图旁。
三种读法。① 顺读(推荐首读):按页推进,每章例题必做、习题课自测,速度约每天四至六页。② 要点读:只求主干——绪论、1.5–1.7(二项式与恒等式)、2.5–2.7 与 2.13(生成函数与 Catalan)、3.1 与 3.6–3.8(鸽笼与 Ramsey)、4.1–4.9(图与树与平面)、5.4–5.8(Burnside 与 Pólya)、6.9–6.11(Hamming 码)。③ 查典读:把各章速查表当索引,用到哪页翻哪页。
页型的含义再交代一遍:导引开路,讲义铺路,例题示范,习题自测(末附提示),地图收网;思想卡把技术升成观念,挑战放一道硬题,实验机出庭作证,〖札记〗对照中西传统。每章末的速查表是本章的「一页锦囊」,考前或写码前扫一眼即可。
器材清单很简单:纸、笔、一副扑克、若干围棋子或彩色扣子(做项链实验用)、以及一台能跑短脚本的计算机(实验页附脚本思路,无需任何专用环境)。组合学的实验成本低到令人发笑——这是它作为「第一门大学数学」的又一好处。
最后一张图把绪论收拢:三个动词(纵轴)与三把钥匙(横轴)张成的平面,六章与综合站各就各位。读图方法:横向看「工具的谱系」——两条账法长出二项式定理,二项式长出生成函数,生成函数长出 Pólya;纵向看「目标的谱系」——计数养存在,存在养构造。
地图在手,出发。下一页起进入第一章:先从两条账法开始——它们朴素得像废话,却撑得起整座三角。
幼儿园的孩子都会数数——从一数到十,再从十数到一百。可「数数」作为一门数学,难就难在:对象根本不排队。十二个人围桌坐,不存在「第一个坐法、第二个坐法」的自然次序;五张牌摸成同花,也没法把所有同花一字排开点数。要从「一个一个地数」升级为「不看对象看结构」,需要一套最基础的账法。本章就做这件事:把组合学的地基——加法原理、乘法原理、排列与组合——从直觉锻造成工具,再用它盖起第一座高楼:帕斯卡三角与二项式定理。
本章的行进路线是一条直线,每一站踩着上一站:
读本章只需一件器材:一支笔。几乎每一页都亲手验一个小账——组合学的第一个承诺是:验证比理解更容易,而理解常常从验证开始。
★ 一切组合计数都从两条账法出发。加法原理:若一件事的做成方式可分成互不重叠、合集完备的 k 类,第 i 类有 ai 种做法,则做成这件事共 a1 + a2 + ⋯ + ak 种做法。乘法原理:若一件事须依次经过 k 个步骤,第 i 步有 bi 种走法且各步的选择互不影响,则共有 b1 b2 ⋯ bk 种走法。
两条原理一个管「分类」,一个管「分步」——用哪个,先问一句:这件事是「或」还是「且」?从北京到上海,乘高铁或乘飞机,是「或」,两类相加;从家到高铁站、再从高铁站到上海,是「且」,两步相乘。混合情形尤其常见:先分类、类内分步,或先分步、步内分类——账要分两层记。
两条原理各有一句常见的破产警告。加法原理要求类与类不重叠:把「摸两张牌」分成「同花」与「有 A」两类相加,就把「同花且带 A」数了两遍——重复。乘法原理要求各步独立:若第二步的可选项依赖于第一步的选择,两步就不能直接相乘——纠缠。重复与遗漏,是 1.15 页要立案的两大「惯犯」,此处的两条警告就是它们的案底。
★ 从 n 个互不相同的对象里取出 k 个,并按次序排成一列,每一种排法叫一个 k-排列,其总数记 P(n,k)。用乘法原理分 k 步:第一步 n 种选法,第二步剩 n − 1 种,⋯⋯第 k 步剩 n − k + 1 种,各步独立相乘:
当 k = n,得到全排列数 P(n,n) = n!。阶乘增长快得惊人:5! = 120,10! = 3 628 800,13! 已超过六十亿——比地球人口还多。这就是开头「围桌坐法」问题的近亲:12 人坐成一排有 12! 种坐法。
排列还有一个变体要现在就认识:圆排列。10 人坐成一排有 10! 种;围圆桌坐,整体转一格算同一坐法,于是每个「圆坐法」对应 10 个「排坐法」——除以 10,共 10!/10 = 9! 种。一般地,n 人围桌共 (n − 1)! 种坐法。这条「除以圈长」的直觉正是绪论项链问题的雏形,第五章将把它锻造成系统理论。
本页埋下一句话,下一页展开它:排列管次序,组合不管;二者之间隔着一个阶乘。这句话是全部组合计数里用得最频繁的一次换汇。
★ 从 n 个互不相同的对象里取出 k 个不计次序,每一种取法叫一个 k-组合,总数记 C(n,k)(课本上又写作竖排的 nCk)。把 1.2 的桥梁写正式:k-排列可以两步走成——先挑出一个 k-集合(C(n,k) 种),再把集合内部排成次序(k! 种)。乘法原理倒过来读:
组合数有三条立刻能用的性质。其一(对称):C(n,k) = C(n,n − k)——从 n 个里挑 k 个留下,与挑 n − k 个丢掉是同一件事,一一对应(双射!)。其二(边界):C(n,0) = C(n,n) = 1、C(n,1) = n。其三(专门定理):C(n,k) + C(n,k + 1) = C(n + 1,k + 1)——把 n + 1 个对象里的第 n + 1 个特殊化:选法分成「不含它」与「含它」两类,分别恰好是左边两项。这条恒等式就是帕斯卡三角的生成规则,下一页的主角。
这里的论证风格,它是全书最高频的武器:要证恒等式,把左边解释成某个计数问题的答案,把右边解释成同一问题的另一种数法,两边自然相等——这就是绪论说的「双计数」钥匙。下一页的三角、再下一页的定理,全是这把钥匙开出来的门。
★ 把 C(n,k) 按 n 排成行、k 排成列,再用帕斯卡规则把相邻两行的数勾连起来,就得到那张从贾宪到帕斯卡都为之着迷的三角(见图 0-2)。三角是组合数的「地图」:第 n 行从左到右依次是 C(n,0), C(n,1), …, C(n,n),左右对称(性质其一),行两端是 1(性质其二),中间每个数等于肩上两数之和(性质其三)。
三角不只是存表,它自己会「长」。三条最有用的生长规律:① 行和:第 n 行各数之和为 2n(把 n 个对象的全部子集按大小分类——加法原理的一次大规模阅兵);② 锯齿和:交错加减一行,得 0(C(n,0) − C(n,1) + ⋯ ± C(n,n) = 0,n ≥ 1;1.7 用对合一行证完);③ 斜线和( hockey stick):沿左斜边往右下方砍一刀,C(r,r) + C(r+1,r) + ⋯ + C(n,r) = C(n + 1,r + 1)——把帕斯卡规则沿对角线累加即得。
hockey stick 还有一个值得单独说的「走路证明」:从三角顶端往下走,每步左下或右下,走 n 步到底,路径条数恰按帕斯卡规则在格点上加倍累积——三角于是成为一张「路线流量图」,每个格点上的数就是从顶端到该点的路径条数。数数的钥匙又一次是翻译:把代数关系翻译成走路,恒等式变成地图上的守恒律。下一页,同一张三角将托起它最著名的定理。
★★ 展开 (a + b)n,系数是什么?取 n = 2 亲手乘开:(a + b)2 = a2 + 2ab + b2。系数 1、2、1 从哪来?把乘积 (a + b)(a + b) 展开的每一个单项,是从第一个括号取一项、第二个括号取一项的分步选择:取到两个 a 的方式只有 1 种(两步都取 a),取到一 a 一 b 的方式有 2 种(谁出 a 皆可)——系数就是取法的数目。一般地,乘积 (a + b)n 的每一项由 n 个括号各出一因子拼成;恰好 k 个括号出 b(其余出 a)的单项合并成 an−kbk,而「哪 k 个括号出 b」的选法恰是 C(n,k)。于是:
定理立刻产出三样东西。第一,系数表就是帕斯卡三角——代数展开与计数结构在此会师,三角从此有了双重身份。第二,取 a = b = 1 得 2n = Σ C(n,k)——1.4 的行和规律从「观察」升级成「定理的推论」。第三,取 a = 1, b = −1 得 0 = Σ (−1)k C(n,k)——锯齿和同理升级。一个定理养活半张三角的规律,这就是「会师」的分量。下一页起,把三角里能挖的恒等式系统地挖一遍。
★★ 组合数 C(n,k) 是数数界最富「多义性」的角色:同一个数,能读成好几种截然不同的计数故事的答案,故事对上故事,恒等式就自动成立。本页把最常用的六条列成一张「读法对照表」,每条附它的计数读法。
| 恒等式 | 计数读法 |
|---|---|
| C(n,k) = C(n,n−k) | 挑出留下的 = 挑出丢掉的(补集双射) |
| C(n,k) + C(n,k+1) = C(n+1,k+1) | 按「要不要那个特殊元素」分类(帕斯卡规则) |
| Σk C(n,k) = 2n | 全部子集按大小分类(二项式定理取 a=b=1) |
| Σj C(m,j) C(n,r−j) = C(m+n,r) | Vandermonde:从甲班 m 人、乙班 n 人共选 r 人,按甲班选几人分类 |
| Σk=rn C(k,r) = C(n+1,r+1) | hockey stick:最大编号为 k 的选法沿 k 分类(或斜线走路) |
| Σk k C(n,k) = n 2n−1 | 队长恒等式:数「带队长的子集」两种方式——按队长是谁(k C(n,k) 对每个大小),或先定队长再任选其余(n 2n−1) |
六条里最值得驻足的是队长恒等式,因为它示范了双计数的标准姿势:左边 Σ k C(n,k) 是「按集合大小分类、每类每集挑一个队长」的账;右边 n 2n−1 是「先从 n 人里定队长,再从剩下 n − 1 人里随便拉人入伙」的账。两队人马数的同一批对象——「有队长的子集」——于是账面必然相等。左边是分类账,右边是流水账,流水账往往比分类账好算,这就是双计数在实战里的价值。
Vandermonde 则是「会师」精神的延续:它的特例 Σ C(n,j)2 = C(2n,n)(取 m = n, r = n)读作:从两班各 n 人里选 n 人,按甲班出几人分类。这个数字大得出乎直觉——C(100,50) = Σ C(50,j)2,一行和等于一个斜对角线上的会师。代数上要硬乘两个多项式 (1+x)n(1+x)n = (1+x)2n 比对系数才能得到它,计数上一句话就完——组合证明的「省」,全省在对结构的直认不讳上。
★★★ 双计数证「两边相等」,对合则证「一边为零」或「正负相抵」。它的招式:把一个带正负号的计数对象族两两配对,使每对恰好一正一负、互相抵消;然后清点落单的对象——族的总和恰好等于落单者之和。若落单者寥寥可数,恒等式一行到手。
细看这个证明的机巧:对合 τ 的定义「拨动最小元素」对每一个子集都可执行,所以配对天衣无缝、无人落单,和为零。若把问题换成「从 n 个元素里取大小至少为 2 的子集」之类带禁令的族,对合就会留下若干拨不动的落单者——落单者恰是「违反禁令边缘」的特殊对象,它们的带号和就是新恒等式。对合的功夫不在配对本身,而在选一个让落单者现形的拨动规则。
至此,第一章的上半场收官:两条账法(1.1)造出排列组合(1.2–1.3),组合数铺成三角(1.4),三角托起二项式定理(1.5),定理养出恒等式工厂(1.6),对合给工厂添了最巧的一台机床(1.7)。下半场(1.8 起)处理「不干净」的对象——带重复的多重集、转圈不算新的圆排列、方格纸上的路径、负指数的广义二项式——每一件都是上半场工具的新战场。
上一节的排列公式默认元素两两不同。可现实里的对象常带重复:单词 MISSISSIPPI 十一个字母里 I 出现四次、S 四次、P 两次、M 一次。若先按 11! 排开再数「看起来一样」的,会撞上重复计数的深水区——两个 S 换位置,单词纹丝不动。
除法原理的正面用法。与其先排后删,不如反过来问:十一个「位置」中,哪四个给 I、哪四个给 S、哪两个给 P、剩一个给 M?这是把 11 个位置分组:C(11, 4) · C(7, 4) · C(3, 2) · C(1, 1)。连乘化简恰好等于
11!4! · 4! · 2! · 1! = 34 650
一般地,多重集 {n1 · a1, n2 · a2, …, nk · ak}(共 n = n1 + ⋯ + nk 个元素)的全排列数为
n!n1! n2! ⋯ nk!
分子是「假装全不同」的排法,分母把每一种视觉上的重复都除干净。这个公式有个漂亮的名字——多项式系数,记作 binom(n; n1, …, nk),它正是下一节多项式定理的主角。
换个读法。同一公式还能读成「在 n 个位置里给 k 类对象分座」:n!/(n1! ⋯ nk!) 也是「n 人分成 k 组、各组 ni 人」的分组方案数。分苹果、分座位、分字母,骨架是同一根。
元素不止有重复,还可能取之不尽:三类糖果随便拿,拿十颗,几种拿法?这类「从 k 类无限供应的元素里取 r 个(只问各类几个)」的计数,答案是一个熟悉的组合数换了身衣服:
(k + r − 1)!r! (k − 1)! = C(k + r − 1, r)
隔板法是它最经典的证明。拿十颗糖、三类,等价于求方程 x1 + x2 + x3 = 10 的非负整数解个数——十颗糖排成一排(用 ● 表示),在中间插两块隔板(用 | 表示):
12 个符号位置里选 2 个放隔板,C(12, 2) = 66 种——这就是答案。一般地,x1 + ⋯ + xk = r 的非负整数解有 C(k + r − 1, k − 1) 个。
三个变式,三板斧。①每盒至少一个(正整数解):先各发一颗「保底糖」,剩 r − k 颗随便分,得 C(r − 1, k − 1)。②带下限(如 x1 ≥ 2):先给 x1 塞两颗再按变式①处理。③带上限(如 x1 ≤ 4):容斥的前奏——总数减去「x1 ≥ 5」的坏解,后者把 x1 强行吃掉 5 颗后仍是隔板问题。
四人围圆桌而坐,几种坐法?直线排是 4! = 24,但圆桌没有「第一个位置」——转一格,甲乙丙丁变乙丙丁甲,谁都不会承认这是新坐法。每个圆排列对应 4 个直线排列(四种起头位置),所以
4!4 = 3! = 6
一般地,n 个不同元素的圆排列数为 (n − 1)!:先固定一人压住旋转对称,剩下的人直线排。
再加一层对称:翻面。若坐的是项链而不是圆桌——项链可以从脖子上取下来翻个面——那么镜像的两个圆排列也算同一条。于是 n 颗不同珠子的项链数为 (n − 1)!/2(n ≥ 3)。五颗不同珠子:12 条项链。
审题的关键一句话:先问清「什么算同一个」。圆桌坐次认旋转、项链连翻面都认,手镯与钥匙圈又各有各的规矩。对称性不同,答案差一倍甚至更多——这正是第五章群作用计数的预告片。
从方格纸的西南角走到东北角,每步只能向右或向上,几条路?把向右记 R、向上记 U,一条 m × n 格网里的最短路就是一个 m 个 R、n 个 U 的字母排列——回到 §1.8:
C(m + n, m)
格路是组合学里的万能翻译机:许多代数恒等式翻成格路语言就一目了然。帕斯卡恒等式 C(n,k) = C(n−1,k) + C(n−1,k−1) 读作「路过某格的路,按最后一步向右还是向上分两类」;Vandermonde 恒等式读作「跨过一条竖线的路,按过线位置分段」。
带约束的格路是更大故事的入口:不许越过对角线的格路条数正是著名的 Catalan 数,§2.13 将用反射原理把它请出来。方格纸虽小,后来的一切——反射、循环引理、递推——都在这几步 R 与 U 里发芽。
帕斯卡三角的行数是有限的,但牛顿在 1665 年问了一句更贪心的话:(1 + x)α 当 α 不是非负整数时,展开是什么?答案是把 C(n,k) 里的 n 换成任意实数后,级数照样成立:
(1 + x)α = Σk≥0 binom(α, k) xk,其中 binom(α, k) = α(α−1)⋯(α−k+1)/k!
收敛半径 |x| < 1。组合学最关心负整数指数:把 α = −n 代入并整理,
(1 − x)−n = Σk≥0 C(n + k − 1, k) xk
系数恰是 §1.9 的多重集组合数!这不是巧合:(1 − x)−3 的 xr 系数正是「三类无限供应取 r 件」的取法数——生成函数思想在此破门而入,第二章将为它单开一章。当 n = 1 还原几何级数 1 + x + x2 + ⋯。
二项式定理只管两个变量的乘方,多个变量呢?多项式定理说:
(x1 + ⋯ + xk)n = Σ binom(n; n1, …, nk) x1n1 ⋯ xknk
求和跑遍所有 n1 + ⋯ + nk = n 的非负解,系数正是 §1.8 的多项式系数。证明与二项式定理同款:n 次乘法中,xi 被挑选了 ni 次——挑法即多重集排列数。譬如
(a + b + c)4 的 a2bc 项系数为 4!/(2!·1!·1!) = 12
展开式共多少项?即「4 次方配额分给 3 个变量」的方案数:C(4 + 3 − 1, 3 − 1) = C(6, 2) = 15 项——隔板法在数项数!再如 (x + y + z)2 共 C(4, 2) = 6 项,即 x2 + y2 + z2 + 2xy + 2xz + 2yz。
把变量换成具体对象就有应用:掷三颗六面骰,点数之和为 10 的方式数是 (x + x2 + ⋯ + x6)3 中 x10 的系数——多项式定理配上「变量当占位符」,就把计数问题变成代数展开问题。这枚钥匙在 §2.5 正式开锁。
计数到底是在干什么?在等可能模型里,概率就是两个计数的比值:
P(事件) = 顺利结局数总结局数
绪论里「五张牌同花」的概率 5148/2 598 960 ≈ 0.198% 正是这个格式的直译。再来两例。例一,至少一张 A:直接数「恰一张、恰两张……」要加四项,倒过来一步到位——1 − C(48, 5)/C(52, 5) ≈ 0.341。对立事件是计数者的捷径:与其正面攻城,不如算城墙外面还剩多少。
例二,生日悖论。三十人的班里两人生日相同的概率?直接数麻烦,算对立面「人人不同」:365 × 364 × ⋯ × 336 / 36530。逐项约去 365 得连乘 Πi=029(1 − i/365),真算一下:约 0.294——所以「撞生日」的概率高达 70.6%。直觉只看到 365 个格子,没看到 C(30, 2) = 435 对「可能相撞的人对」。这是第一章的收官警句:概率的反直觉,多半是计数的直觉没过关。
本章公式不多,翻车姿势却花样繁多。本页是一份「案卷」,收录四种最高发的错案。
案一:忘了除以对称。「六人围圆桌」答 6! = 720——多算了旋转等价,正解 120。凡见「圆桌、项链、手镯、转一圈不算新」,先立起对称意识再动笔。
案二:和事件当互斥加。「从 52 张牌抽 5 张,同花或四条,几种?」分别算 5148 与 624 相加得 5772,却漏了「同花又是四条」的 36 张同花大满贯级重复——正解 5148 + 624 − 36 = 5736。集合相交时必须减重叠,容斥原理(§2.1)就是这条经验的系统化。
案三:「至少」正面硬攻。「至少一张 A」若正面分「恰一张、恰两张、恰三张、恰四张」四账并加,算力翻四倍还易漏项;对立面 1 − C(48,5)/C(52,5) 一步到位。经验法则:「至少」「至多」先想对立面。
案四:把有序当无序。「从十人中选三人组成委员会」是组合(120),「选三人任正副席与秘书」是排列(720)。判定口诀只有一句:交换两个元素,结局变不变?变则排列,不变则组合。
十六节的公式与技巧,归拢起来是一棵决策树。做题时自上而下走三问:
第一问:结局有没有顺序?无序走组合 C(n,k),有序走排列 P(n,k) 或全排 n!。第二问:元素有没有重复或无限供应?有限重复用多项式系数 n!/(n1!⋯nk!),无限供应用隔板法 C(k+r−1, r)。第三问:有没有对称在制造等价?旋转除以组大小,旋转加翻面再除二——更深的对称留给第五章。
三问之外还有两条外挂:事件带「至少/至多」先想对立面(§1.14);多约束条件先容斥再算细账(§1.15 案二,§2.1 正式开讲)。这张树值得亲手画一遍——画树的过程,就是把公式翻译回计数语言的过程,也是第一章真正想教的东西。
例 1(八种分球)。三只不同的球放入四个不同的盒子,按「球可辨?盒可辨?盒可空?」逐层分类计数:
| 情形 | 模型 | 计数 | 答案 |
|---|---|---|---|
| 球异·盒异·可空 | 每球 4 选 1 | 43 | 64 |
| 球异·盒异·不空 | 满射 | 43 − C(4,1)33 + C(4,2)23 − C(4,3)13 | 36 |
| 球同·盒异·可空 | 隔板 | C(6, 2) | 15 |
| 球同·盒异·不空 | 隔板(正解) | C(3, 2) | 3 |
| 球异·盒同·不空 | 第二类 Stirling | S(3, 2) = 3 | 3 |
| 球同·盒同 | 分拆数 | p(3) = 3 | 3 |
解题记要。「不空」的满射计数用容斥正面打:总方案减「某盒空」、加回「两盒同空」……四层交错和恰好清干净重复——这正是 §2.2 容斥一般形式的 3 集合特例。而「球异·盒同」引出的 Stirling 数与「球同·盒同」的分拆数,分别会在 §6 与 §2.8 长成完整理论。
例 2(单词排列)。LEVEL 五个字母能排出多少个不同单词?字母账本:L×2、E×2、V×1,故 5!/(2!·2!) = 30。追问:其中首尾都是 L 的几种?固定两端两个 L,中间三格排 E×2、V×1:3!/2! = 3 种。再追问:两个 E 不相邻的几种?插空法——先排 L、L、V 的 3 个词干(3!/2! = 3),三个空隙选两个放 E:3 × C(3, 2) = 9 种。
证恒等式有三条流水线:代数、归纳、组合。组合证明最有滋味——两边各讲一个故事,故事相同则数相同。
例 3。证 Σk C(n,k) = 2n。组合证明:右端是「n 个人组队,任意大小」的队数;按队里几人分类,恰是左端。一行完事。代数证明(令 x = y = 1 代入二项式定理)也快,但没有解释力。
例 4。证 Σk k C(n,k) = n 2n−1。组合证明:数「有队长的队」两次。先选队长再选队员:n · 2n−1;按队伍大小分类:Σ k C(n,k)。双向计数(double counting)——同一件事数两遍,得到一个等式——是组合证明的看家本领。
例 5。证 Vandermonde C(m+n,r) = Σ C(m,k)C(n,r−k):从 m 位先生 n 位女士中选 r 人,按先生几人分类。代数路线则比较 (1+x)m+n = (1+x)m(1+x)n 的 xr 系数——两条路线各有所长,但组合证明把「为什么相等」讲成了人话。
A 组·快问快答
A1.字母 BANANA 能排出多少个不同单词?
答:6!/(3!·2!) = 60。字母账本:A×3、N×2、B×1。
A2.八人围圆桌,若只关心左右邻座关系有几种?(提示:相对坐法除旋转后还需斟酌「镜面对称是否算新」——圆桌正解 7!,若只论邻座关系则 7!/2 = 2520。)
审题训练:本题为「只关心相邻关系」版本。
A3.方程 x1 + x2 + x3 + x4 = 12 的非负整数解个数?
答:C(15, 3) = 455。
A4.十粒糖分给四个孩子、每人至少一粒?
答:C(9, 3) = 84。
A5.4×6 格网从左下到右上(右 4 上 6),几条最短路?
答:C(10, 4) = 210。
B 组·中等强度
B1.六人排队,甲乙丙三人必须相邻,几种?
答:捆成一点 4! × 3! = 144。
B2.从 7 位先生 5 位女士中选 6 人委员会、其中女士至少 3 位?
答:C(7,3)C(5,3) + C(7,2)C(5,4) + C(7,1)C(5,5) = 350 + 70 + 7 = 427(按女士人数分类)。
B3.单词 ARRANGE 排列中两个 R 不相邻的几种?
答:总 7!/(2!·2!) = 1260;两 R 相邻捆成一点 6!/(2!) = 360;故 1260 − 360 = 900。
C 组·恒等式工厂
C1.用组合证明证 Σk=rn C(k,r) = C(n+1, r+1)(hockey stick)。
右端:从 n+1 人中选 r+1 人;按「编号最大的成员是谁」分类——最大者是第 k+1 号时,其余 r 人从前面 k 人里选。
C2.证 Σk C(n,k)2 = C(2n, n)。
Vandermonde 取 m = n, r = n;组合故事:2n 人中选 n 人,按「前 n 人中选几个」分类。
C3.证 k C(n,k) = n C(n−1,k−1),并给出「先选队长」的组合解释。
左端:k 人队里指定队长;右端:先定队长再补队员。
D 组·格路专项
D1.6×6 格网中,经过主对角线点 (3, 3) 的最短路几条?
答:C(6, 3) × C(6, 3) = 400。
D2.证明:不越过对角线 x = y 的 n×n 格路(不触反对角下界)条数满足 Catalan 型递推 Cn = Σ CiCn−1−i。(本题为 §2.13 预留接口,递推成立即可,通项下章揭晓 C(2n,n)/(n+1)。)
D3.从 (0,0) 到 (7,4),且第 4 步必须向右的路几条?
答:第 4 步右意味着前三步恰 2 右 1 上:C(3, 1);余下 C(7, 3) = 35;共 3 × 35 = 105。
第一章的概念网络分三层:两条公理(加法与乘法原理)在最底层;中层是四个基本计数对象(排列、组合、多重集、格路);上层是四个技巧杠杆(双射、双向计数、隔板、对立面)。箭头是「被用到」。
读图三件事。①几乎所有上层技巧都回流到「排列与组合」两个基本对象——它们是整个组合学的原子。②隔板法同时服务多重集组合与多项式定理的项数统计,是本章出镜率最高的技巧。③双向计数与双射通向第二章的生成函数与容斥——本章的「解释力工具」将在那里升级成「计算力工具」。
公理与基本公式
| 名称 | 公式 | 计数读法 |
|---|---|---|
| 加法原理 | |A ∪ B| = |A| + |B|(A∩B = ∅) | 分类相加,类间不重叠 |
| 乘法原理 | |A × B| = |A| · |B| | 分步相乘,步间不干扰 |
| 排列 | P(n,k) = n!/(n−k)! | 选 k 个排成一列 |
| 组合 | C(n,k) = n!k!(n−k)! | 选 k 个成一组 |
| 多重集排列 | n!/(n1!⋯nk!) | 带重复的全排列/分组 |
| 多重集组合 | C(k+r−1, r) | k 类无限取 r 个(隔板) |
| 圆排列 | (n−1)! | 转一圈不算新 |
| 项链 | (n−1)!/2 | 翻面也不算新(n≥3) |
| 格路 | C(m+n, m) | m 右 n 上的字母排列 |
二项式家族
| 名称 | 公式 |
|---|---|
| 二项式定理 | (x+y)n = Σ C(n,k) xkyn−k |
| 帕斯卡恒等式 | C(n,k) = C(n−1,k) + C(n−1,k−1) |
| 对称 | C(n,k) = C(n,n−k) |
| 行和 | Σ C(n,k) = 2n |
| Vandermonde | Σ C(m,k)C(n,r−k) = C(m+n,r) |
| hockey stick | Σk≥r C(k,r) = C(n+1,r+1) |
| 广义二项式 | (1+x)α = Σ binom(α,k)xk(|x|<1) |
技巧杠杆(带使用说明书)
① 隔板法。把「r 个无别之物分给 k 个有别之盒」翻译成插板:C(k+r−1, k−1)。变式三板斧:保底一颗(正解)、带下限(先塞后分)、带上限(容斥减坏解)。它同时是多项式定理「数项数」的工具。
② 双向计数。同一集合用两种方式数,得一个恒等式。「有队长的队」一例贯通行和、kC(n,k) 型、Vandermonde 三族恒等式。
③ 对立面。「至少/至多」类问题先算补集:P(≥1) = 1 − P(0)。生日悖论与抽牌同花都是此路。
④ 审对称。圆除以旋转、项链再除以翻面;「什么算同一个」是做题第一问,也是第五章群作用的引线。
⑤ 插空法与捆绑法。「不相邻」先排别人再插空;「必相邻」先捆成一点。两法配合处理位置约束。
三个易错哨位:对称忘除(案一)、相交忘减(案二)、有序无序混淆(案四)。判定口诀:交换两元素,结局变不变?
通往下一章。本章所有公式都算「直接数得动」的情形。当对象多到直接数崩(十万级集合的交并)、当递推比通项好找(Catalan)、当系数本身就是答案(凑硬币),三件套——容斥、生成函数、递推——接棒上场。
「组合学的艺术,不在于计算,而在于描述——把一个数描述成一件能数清的事。」
本章反复出现同一个动作:两边各讲一个故事,故事相同则数相同。Vandermonde 恒等式的代数验证只要一行,但「从先生女士中选人」的一句话让人看见它为什么必须成立。这就是组合证明的哲学:
数不是算出来的,是「认」出来的。一个集合如果与另一个更容易数的集合之间存在双射(一一对应),它们的元素个数就必然相等——哪怕我们双方都数不清。帕斯卡三角的第 10 行第 5 列为什么等于 462?因为它同时是「十选五」「五右五上的格路」「方程十元四解」「第 10 行第 5 列」——多重身份是同一个数。
这种「认数」的眼光有一个正式名字:双射原理。它是本章全部技巧的骨架:隔板法是把「分糖」双射到「插板」;对立面是把原集合双射到补集;格路翻译机是把代数恒等式双射到路径语言。第二章的生成函数,则是把整个数列(a0, a1, a2, …)双射成一件行李 Σ akxk——行李托运了,数列的运算就成了代数。
前 n 个正整数的幂和有惊人的「组合」面目:
1 + 2 + ⋯ + n = C(n+1, 2), 13 + 23 + ⋯ + n3 = C(n+1, 2)2
挑战任务。①用「数有序对」的组合证明解释第一个等式;②用「数四方组」的组合证明解释第二个等式(提示:左端按四方组里的最大值分类);③用真跑数据验证 n = 1…10 的两个等式,并观察 C(n+1,2)2 与 Σk3 的逐项咬合。
思路阶梯。第一等式:C(n+1, 2) 数的是 {0, 1, …, n} 的二元子集;按其中较大元素分类,较大者为 k 的恰有 k 个——左端现身。第二等式是著名的「德·摩尔根日光」:C(n+1, 2)2 数的是两个独立二元子集对 (A, B);设 A = {a, b}、B = {c, d},按 max(b, d) 分类并小心处理并列情形,可以数出 Σ k3。这是组合证明里的硬仗,值得一战。
加分项。更一般的幂和由 Faulhaber 公式统治:Σkp 总能写成 Bernoulli 数的多项式。组合学视角下它对应「数 2p 元结构」——本章的双向计数思想走到极致的样子。
帕斯卡三角手算到第 10 行就该交给计算机了。本实验让机器逐行生成三角,并给每个数做「体检」:检验本章全部恒等式,再给数字染色看分形。
实验设计。①递推生成 64 行;②对每行断言行和 2n、对称性、hockey stick;③把奇偶性当颜色画图——奇数涂金、偶数留底色。
观察报告。奇偶图显现出谢尔宾斯基三角形的自相似花纹——大三角套小三角,层层无穷。这不是巧合:帕斯卡恒等式 C(n,k) + C(n,k+1) = C(n+1,k+1) 在模 2 下变成异或运算,异或运算天然长分形。1960 年代 Lucier 与后来的分形几何学正是从这里把「初等组合数」与「混沌几何」连成一脉。
体检真跑结论。64 行三角:行和恒等式 64/64 通过;对称性 2080/2080 通过(第 n 行 n+1 对);hockey stick 抽检 500 组全过;模 2 花纹自相似层级 6 层(64 = 26)。
西方教科书称它 Pascal's Triangle——杨辉 1261 年《详解九章算法》里转录的图,比帕斯卡 1654 年的《论算术三角形》早了近四个世纪;而杨辉又注明此图「出《释锁》算书,贾宪用此术」——北宋贾宪约 1050 年已用它开方,比帕斯卡早六百年。
贾宪用它做什么?不是数扑克,是开高次方。(a+b)n 展开的系数,正是开 n 次方时逐位试商的系数表——「释锁」即解开锁链,指开方法。贾宪的「增乘开方法」后来经秦九韶 1247 年《数书九章》发扬,演化为含高次方程数值解的完整算法,与 19 世纪西方的 Horner 法(1819)如出一辙。
杨辉的账本。《详解九章算法》不仅录图,还记下用法口诀「左袤乃积数,右袤乃隅算」——三角两条斜边恒为 1 的描述。元初朱世杰 1303 年《四元玉鉴》把三角推到第八行,并用于垛积术(高阶等差级数求和)——hockey stick 恒等式的中国古算原型。
为什么是「重新发现」而非「传播」?李约瑟曾专门讨论:13 世纪中国与欧洲的数学交流并无实据,两条传统各自独立走到了同一张三角。这恰是本章的隐喻:计数结构是客观存在——谁认真数数,谁就会撞见它。贾宪、杨辉、朱世杰、帕斯卡、牛顿,五个名字,一张图。
| 情境关键词 | 方法 | 公式 |
|---|---|---|
| 选 k 个不管顺序 | 组合 | C(n,k) |
| 选 k 个排顺序 | 排列 | P(n,k) = n!/(n−k)! |
| 全体排队 | 全排列 | n! |
| 有重复的全排列 | 多项式系数 | n!/(n1!⋯nk!) |
| 无限供应取 r 个 | 隔板法 | C(k+r−1, r) |
| 分给 k 人每人至少 1 | 隔板·正解 | C(r−1, k−1) |
| 围桌而坐 | 圆排列 | (n−1)! |
| 项链手镯 | 圆排列÷2 | (n−1)!/2 |
| 方格最短路 | 格路 | C(m+n, m) |
| 至少一个… | 对立面 | 1 − P(0) |
| 两类相交计数 | 容斥雏形 | |A|+|B|−|A∩B| |
| 展开 (x+y)n | 二项式定理 | Σ C(n,k)xkyn−k |
| 多变量展开 | 多项式定理 | Σ binom(n;n1…nk)∏xini |
| 负指数展开 | 广义二项式 | (1−x)−n = Σ C(n+k−1,k)xk |
| 证恒等式 | 组合证明 | 两边各讲一个故事 |
第一章的加法原理有个静默前提:分类互不重叠。可现实的问题里,集合天然纠缠——「会英语的」「会法语的」「会德语的」两两相交、三方共叠;「能被 2 整除的」「能被 3 整除的」数轴上交错咬合。硬套加法原理,重叠被重复计入;硬算交集,纠缠指数爆炸。
一个小例子先尝味道。1 到 1000 里能被 2 或 3 整除的整数有多少?直接数乱,从容不迫地算:被 2 整除 500 个,被 3 整除 333 个,被 6 整除(即被 2、3 同时)166 个。容斥:
500 + 333 − 166 = 667
交集被「减一次」是为了抵消「加两次」——这就是容斥的全部灵魂,第二章将把它推广到任意多个集合:每个集合的账加一次、每个交集的账按「元素被数过几次」交错加减,直到每个元素的净计数恰好为一。那个「交错和清账」的结构,正是第一章例 1 满射计数用过的武器。
更妙的是,容斥的「清账」思想与生成函数的「打包」思想、递推的「昨天今天」思想,将在第二章汇成三件套:当直接数不动了,容斥负责去重,生成函数负责打包,递推负责承前启后。翻页,开工。
第一章的武器库足够对付「一百人里选几个」的场面。可数字一大、约束一多,直接数就崩了。看三个真实的困局:
困局一。某系 100 名学生,修微积分的 62 人、修线代的 47 人、两门都修的 21 人——至少修一门的有几人?62 + 47 − 21 = 88,减去的 21 是被数了两遍的。三个集合、四个集合呢?重叠的账怎么算才不重不漏?
困局二。用 1 元、2 元、5 元纸币凑 37 元,几种凑法?加法原理的分类会爆炸——枚举 5 元的张数,每种再分 2 元的张数……「几类嵌几类」的账本越记越厚。
困局三。一对兔子每月生一对小兔,小兔两月后也能生——一年后几对?今年的兔子数由前两年决定,直接列式没有现成公式。
三个困局各配一把钥匙:容斥原理管「重叠的账怎么算」、生成函数管「嵌套的枚举怎么打包」、递推关系管「今天的数怎么由昨天长出来」。三件套的共同哲学是一句话:数不动,就换一种数法——把结构托付给代数。
本章路线。先修容斥(§2.1–2.4),顺手解决著名的错排问题;再开生成函数(§2.5–2.9),从凑硬币一路打到分拆数与五边形定理;然后是递推(§2.10–2.13),Fibonacci 与 Catalan 双星登场;最后以指数生成函数与换算表收束。三件套彼此相通——容斥能推出递推、生成函数能解递推——本章结束时可以看到它们本是同源。
两个集合 |A ∪ B| = |A| + |B| − |A ∩ B|——第一章已经用过。为什么必须减?因为交集中的每个元素在 |A| + |B| 里被数了两次,减一次才回到一次。容斥的全部内容就是把这本账算到底:
|A ∪ B ∪ C| = Σ|Ai| − Σ|Ai ∩ Aj| + |A ∩ B ∩ C|
单集合加、双交集减、三交集加——「加、减、加」的交错节奏。验证一个元素:恰属一个集合的,被加一次,得 1;恰属两个的,加 2 减 1,得 1;三属的,加 3 减 3 加 1,得 1。无论属几个集合,净计数都是 1——这就是「容斥」二字的含义:容纳每一层、排斥掉多算的。
一个立即的应用:数否定。「不被任何 Ai 包含」的元素个数 = 全集减并集,即
|A1c ∩ ⋯ ∩ Akc| = |S| − |A ∪ B ∪ ⋯|
绪论埋的伏笔「1 到 1000 中不能被 2、3、5、7 任何整除的整数」(Euler 的 φ 函数式问题)正走这条路:四个「倍数集合」的并集,八层交错的账——下一节给出通用公式。
n 个集合的并集,账本按「交集的大小」分层数:
|A1 ∪ ⋯ ∪ An| = Σ|Ai| − Σ|Ai∩Aj| + Σ|Ai∩Aj∩Ak| − ⋯ + (−1)n+1|A1∩⋯∩An|
第 r 层跑遍所有 C(n,r) 个 r 重交集,符号 (−1)r+1 交错。一般形式还有个更锋利的元素版:设元素 x 恰属 t 个集合,它在第 r 层被数 C(t,r) 次,净计数
Σr≥1 (−1)r+1 C(t,r) = 1 (t ≥ 1 时;t = 0 时为 0)
这正是第一章的行和恒等式 Σ C(t,r) = 2t 减去 r = 0 项——容斥的正确性,居然是帕斯卡三角担保的。两个分支在第二章交汇,这是本章最值得驻足的一幕。
实战格式。用容斥数「都不」时把式子倒过来写:
|都不满足| = |S| − Σ|Ai| + Σ|Ai∩Aj| − ⋯ + (−1)n|A1∩⋯∩An|
「全集减、单加、双减、三加……」。记住口诀:奇数层集合相加、偶数层相减,从「都不」的角度符号整体翻转。
n 封信装 n 个信封,全部装错的方式有几种?这就是错排数 Dn。用容斥:全集是全部 n! 种装法;坏事件 Ai =「第 i 封装对」。任取 r 封装对的装法有 (n − r)! 种,容斥得
Dn = Σr=0n (−1)r C(n,r)(n − r)! = n! Σr=0n (−1)r/r!
前几项:D1 = 0,D2 = 1,D3 = 2,D4 = 9,D5 = 44,D6 = 265。把级数与 e−1 的泰勒展开对照,立即得到惊人的近似
Dn = 最接近 n!/e 的整数(误差恒 < 1/2)
概率读法更妙:随机装信全错的概率 Dn/n! → 1/e ≈ 36.8%,且收敛极快——n = 5 时已与极限吻合到三位。抽十封全错:概率就是 36.8%,与「一百封全错」几乎一样。错排概率对 n 几乎不敏感,是概率论里最美的「极限独立性」之一。
错排还有一条不靠容斥的递推:Dn = (n − 1)(Dn−1 + Dn−2)——看第 n 封信装进了哪个信封 j(n − 1 种),再分「i 装进 j 的信封」与「不然」两类。一条公式两个来源,容斥给通项、递推给算法,§2.10 再叙。
错排是「全部禁位」的极端情形。一般的限位排列——第 i 人禁入某些位置——容斥同样精工细作。经典例:n 对夫妇围桌就座、男女相间且夫妻不相邻。更朴素的版本:
例(车多相钳)。在 n × n 棋盘上放 n 个互不攻击的车,但某些格子禁放,方案数?无禁位时 n!;设禁位构成「每行至多一格、每列至多一格」的格局,容斥按「禁位上放几个车」分层:
N = Σr (−1)r ri · (n − r)!
其中 ri 是「在禁格里放 r 个互攻击车」的方法数(棋盘多项式的系数)。这份「禁格数车」的巧思是 20 世纪组合学家罗伯克(Rybnikov)们发展出的棋盘多项式理论入口。
再例(帽子问题的 cousin)。四个人寄存帽子,甲拿不到自己的、乙拿不到自己的,其余随便:4! − C(2,1)·3! + C(2,2)·2! = 24 − 12 + 2 = 14 种。禁位只要不覆盖所有人,容斥层数就是禁位人数——账本轻。
限位排列在 20 世纪长成了 rook polynomial 与 ménage 问题的完整体系; Lucas 的 ménage 问题(夫妇围桌)直到 1943 年才由 Touchard、Kaplansky 彻底解决,答案至今仍写成容斥级数——有些公式,容斥是唯一自然的语言。
给定数列 a0, a1, a2, …,它的(普通)生成函数就是把整列数打包成一件幂级数行李:
G(x) = a0 + a1x + a2x2 + a3x3 + ⋯
先立三条纪律:① x 是占位符,不问收敛——这是「形式幂级数」,x100 的系数才是主角;② 打包的目的是让运算代替枚举;③ 解包就是读系数。三条纪律立起来,代数就接管了计数。
几个即刻的打包。第一章的公式一一认领:(1 + x)n 打包了 C(n,k);(1 − x)−m 打包了多重集组合 C(m+k−1, k);1 + x + x2 + ⋯ 打包了「一类元素取几个」的自由。赫然发现:第一章的每个计数公式,都是某个生成函数的展开——行李不是新东西,是把旧地图叠成了立体。
为什么打包有用?因为「加法原理」与「乘法原理」在行李世界里变成多项式的加法与乘法:两件事各选其一,生成函数相加;两件事各选各的再合起来,生成函数相乘。乘法的进位机制——系数卷积——恰好执行了「分步计数再按步数归类」。下一节把卷积说透。
设 G(x) = Σakxk、H(x) = Σbkxk。加法无悬念:(G + H) 的系数是 ak + bk——「两来源任取其一」。乘法才是灵魂:
xn 的系数 = a0bn + a1bn−1 + ⋯ + anb0
每一项对应「第一步拿走 k、第二步拿走 n − k」的一种分法——卷积就是乘法原理的代数化身。验证最简例:(1 + x + x2)2 的 x2 系数 = 1·1 + 1·1 + 1·1 = 3,恰是「两步共走 2 步」的 3 种分法 (0,2)(1,1)(2,0)。
三条常用变换。① 平移:xmG(x) 把数列右移 m 位;② 前缀和:G(x)/(1 − x) 的系数是 a0 + ⋯ + ak——除以 (1 − x) 就是「求前缀和」;③ 抽取:(G(x) + G(−x))/2 只留偶次项。三条变换在「代数操作 ⇋ 数列操作」之间建立了完整字典,这本字典叫生成函数演算。
一个漂亮的 instant 应用:1/(1 − x)2 = Σ(k + 1)xk。为何?它是 (1 − x)−1 · (1 − x)−1,卷积得 Σ C(k+1, k)——两次「无限供应」取 k 件的隔板数。代数一步到位,第一性的推导(§1.9)反而成了「组合解释」。
困局二回来。1 元、2 元、5 元各不限,凑 10 元几种凑法?三种面额各配一件行李:
1 元:(1 + x + x2 + ⋯);2 元:(1 + x2 + x4 + ⋯);5 元:(1 + x5 + x10 + ⋯)
三件行李相乘——每一堆凑法对应各面额取几张的一个组合,x10 的系数就是凑 10 元的方法数。展开(真跑验证):x10 系数 = 10。逐项枚举核对:5+5、5+2+2+1、5+2+1×3、5+1×5、2×5、2×4+1×2、2×3+1×4、2×2+1×6、2+1×8、1×10——恰好 10 种。
更有力的问法:追问组合结构。把 5 元拿掉:(1 − x)−1(1 − x2)−1 的系数满足漂亮的分半模式;把各面额限张数(如 2 元至多 3 张),行李改为截断多项式 (1 + x2 + x4 + x6)——约束条件直接写进行李里。限 1 张、限偶数张、限质数张……每种约束都是一件新行李,「枚举爆炸」被代数吸收。
从行李到算法。系数的计算不必真的展开幂级数:动态规划逐件行李「扫描更新」即可(外层遍历面额、内层遍历金额),O(面额数 × 金额) 步算完——生成函数不仅给出答案,还给出算法。§2.8 的分拆数、§2.13 的 Catalan 数,都是同一台机器上的不同档位。
把 5 写成若干正整数之和、不计顺序:5、4+1、3+2、3+1+1、2+2+1、2+1+1+1、1+1+1+1+1——共 7 种。这就是分拆数 p(5) = 7。分拆数是数论与组合的边界哨站:没有简单的显式公式,却是被研究得最透的数列之一。
生成函数一步写全:每个「部分大小 j」是一类无限供应的元素,行李 1 + xj + x2j + ⋯ = (1 − xj)−1。全部部分相乘:
Σ p(k)xk = ∏j≥1 (1 − xj)−1
限制份数恰好等于「截断」:恰 m 份的分拆数是 xm/((1−x)(1−x2)⋯(1−xm)) 的系数(先给每份垫 1 再松开);至多 m 份则乘 (1−xm+1)(1−xm+2)⋯ 的截断。
共轭分拆是最美的免费午餐:把分拆的 Ferrers 图(点阵)转置,「部分 ≤ m」与「最大部分 ≤ m」互换、「恰 m 份」与「最大部分 = m」互换。于是「份数 ≤ 3 的 p(n)」=「最大部分 ≤ 3 的 p(n)」——一个双射证明,不花一行计算。真跑核对:5 拆成至多 3 份有 5 种(5, 4+1, 3+2, 3+1+1, 2+2+1),最大部分 ≤ 3 的也是这 5 种——同一批图转置。
分拆的世界遍布「意外恒等」:不同风格的两种描述,数出来竟然一样。最著名的两条:
欧拉恒等式(1748):分成互不相同部分的分拆数 = 分成奇数部分的分拆数。例如 5:互不相同的拆法 5、4+1、3+2 共 3 种;全奇数的拆法 5、3+1+1、1+1+1+1+1 也是 3 种。双射证明(Glaisher):把重复的 2s 份相同部分合并成一份大的、逆向拆开——结构一一对应。生成函数证明一行:∏(1 + xj) = ∏ (1 − x2j)/(1 − xj) = 1/∏(1 − x奇数)。
五边形定理(欧拉 1750)则是惊雷:
∏j≥1(1 − xj) = Σk∈ℤ (−1)k xk(3k−1)/2
左边是无穷乘积,展开后几乎全部系数为零——只有广义五边形数 1, 2, 5, 7, 12, 15, 22, 26, …(k(3k−1)/2,k 取正负)处系数 ±1,其余全为 0!无穷的相消坍缩成一条稀疏级数。欧拉花了七年才从数值猜到证明;第一个组合证明直到 1881 年才由 Franklin 给出(§2.16 的挑战复刻它)。把它当递推用:p(n) 可以由 p(n−1), p(n−2), p(n−5), … 以 O(n1.5) 步递推——它是 p(n) 计算史上的第一台加速器。
三件套的最后一件:当 an 由更小的下标决定,就写递推关系——用昨天说今天。已经见过的例子:帕斯卡递推、错排递推、分拆的五边形递推。递推三件配齐才能开工:初始值、递推式、目标。
例一(爬楼梯)。一次跨 1 或 2 阶,上 n 阶几法?最后一步是 1 或 2,故 f(n) = f(n−1) + f(n−2),初始 f(1) = 1, f(2) = 2——Fibonacci 变装。「按最后一步分类」是递推的标准起手式,与按「最后一个元素分类」的双向计数一脉相承。
例二(汉诺塔)。T(n) = 2T(n−1) + 1,T(1) = 1。迭代展开:T(n) = 2n − 1。「先递推、再猜通项、后归纳证明」是解递推的古经典三段式,计算机时代仍是最通用的解法。
例三(分桃)。每天吃掉一半再多吃一个,十天恰好吃完。倒推:第十天剩 0(吃完前 1 个),at−1 = 2(at + 1)——倒着递推同样是递推,方向只是记账习惯。
递推的价值在于:就算永远求不出通项,an 也已经完全确定——计算机时代这甚至比通项更实用。但通项自有通项的美:下一节用特征方程把 Fibonacci 解成黄金比例。
F1 = F2 = 1,Fn = Fn−1 + Fn−2:1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, …。特征方程法:猜 Fn = λn,代入得 λ2 = λ + 1,解出
λ1,2 = (1 ± √5)/2
通解 Fn = Aλ1n + Bλ2n,初始值定出 A = B = 1/√5:
Fn = [(1 + √5)n − (1 − √5)n]/(2n√5)
无理数的三角形瓦解成整数——两个无理项的差恰好把无理部分抵净。真跑验证:F20 = 6765,F50 = 12 586 269 025,公式逐项吻合。更妙的推论:|λ2| < 1,第二项指数衰减,故
Fn+1/Fn → λ1 = φ = (1 + √5)/2 ≈ 1.618
黄金比例从兔子堆里长出来——前 n 项比值 1, 2, 1.5, 1.667, 1.6, 1.625, … 交替逼近 φ,真跑到 F40/F39 已与 φ 吻合到十位。为什么是黄金比例?因为递推式 λ2 = λ + 1 正是黄金分割的定义式——特征方程把「增长的节奏」翻译成了方程的根。
方法推广。特征根有重根时通解补 nλn 项;复根时用欧拉公式化为三角函数。特征方程法的本质:把递推的「节奏」当多项式的「根」来读。
右端多出一项:an = c1an−1 + ⋯ + ckan−k + f(n),就叫非齐次。解法两步:通解 + 特解——齐次部分给「节奏」,特解吸收「外力」。
例一(汉诺塔)。T(n) = 2T(n−1) + 1。齐次通解 A·2n;外力是常数,猜特解 b:代入 b = 2b + 1 得 b = −1。总解 T(n) = A·2n − 1,初始 T(1) = 1 定 A = 1:T(n) = 2n − 1。√
例二(排课表)。an = 3an−1 + 2n。外力是一次多项式,猜特解 bn + c:代入比较系数,b + c = 3b + 2 且 b = 3b——后者逼 b = 0,糟糕,猜错了?不,是「多项式外力配同次特解」的规则要求先检查 1 是否为特征根:3 ≠ 1,重算——b = 3b + 2 应来自 bn + c = 3(b(n−1) + c) + 2n,比较 n 系数 b = 3b + 2 得 b = −1,常数项 c = 3(c − b) 得 c = −3/2。特解猜法的口诀:外力是什么形状,特解就穿什么衣服——除非撞上特征根,那就把衣服升一阶。
例三(外力撞根)。an = 2an−1 + 2n:外力 2n 与特征根 2 撞车,特解改猜 bn·2n,代入得 b = 1/2。撞一次升一阶,撞两次升两阶——这与微分方程的共振现象完全同构。
三对括号能排出几种合法序列?((()))、(()())、(())()、()(())、()()()——5 种。这就是 Catalan 数 C3 = 5。Catalan 数是组合学的「万能配角」:合法括号、凸多边形三角剖分、不越对角线的格路、二叉树计数、栈混洗……上百个看似无关的问题全由它统治。真跑前几项:
1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, …
递推最容易建立:合法括号串的第一对括号内部装 i 对、外面剩 n−1−i 对,故
Cn = Σi=0n−1 CiCn−1−i, C0 = 1
这正是第一章习题 D2 里格路递推的变形——括号与格路在递推层面就已经是同一件事。凸五边形三角剖分:任选一个三角形把五边形切成两半(一边形与三角形),剖分数 C3 = 5。
通项公式由生成函数正解:设 C(x) = ΣCnxn,递推翻译成 C(x) = xC(x)2 + 1,解二次方程取正支:
C(x) = [1 − √(1 − 4x)]/(2x), Cn = C(2n, n)/(n + 1)
「括号语言 = 生成函数的平方根」——序列、方程、格路三方同证,是生成函数方法最完整的示范(§2.15 换算表的核心例子)。
普通生成函数管「组合」(只问几个,不问次序);若对象有标签、次序要紧(排列、配对、染色),要用指数生成函数(EGF):
Ê(x) = Σ an xn/n!
多除的 n! 正是「标签的全排列数」——EGF 把「内部排列的自由」预先除掉,让乘法卷积自动补回。一句话记忆:OGF 管无标号,EGF 管有标号。
三个标准件。① ex = Σxn/n! 打包「 unrestricted 排列」;② e−x 的交错来自容斥;③ 1/(1 − x) 在 EGF 世界对应 Σxn(无标签重复)。
例一(错排一击即中)。Dn 的 EGF:错排 = 「每个元素要么自环(禁止)要么进环」(细节见挑战),容斥给
Σ Dnxn/n! = e−x/(1 − x)
读系数:Dn/n! = Σ(−1)r/r!——§2.3 的级数原样现身,而 e−x 在 x = 1 处的值 1/e 顺手解释了「概率 → 1/e」。EGF 的指数记号直接把 e 请进了组合学。
例二(染色)。n 个有标签的珠子、k 种颜色随意染:kn 种。EGF:每颗珠子独立,行李 kx 的 n 次幂 (kx)n/n! 系数乘 n!——恰为 kn。独立重复 = 指数,在 EGF 世界是字面意义的指数律。
本章最实用的一页:递推 ⇋ 生成函数的完整换算字典。设 G(x) = Σanxn。
| 数列操作 | 生成函数操作 | 例 |
|---|---|---|
| an = an−1(抄上一项) | (1 − x)G = 常数 | 等差 → 有理函数 |
| an = an−1 + an−2 | (1 − x − x2)G = 一次式 | Fibonacci → 1/(1−x−x2) |
| 卷积递推 Cn = ΣCiCn−1−i | C(x) = xC(x)2 + 1 | Catalan → 平方根 |
| 前缀和 sn = Σk≤nak | S(x) = G(x)/(1 − x) | 除法即求和 |
| 分拆 p(n) | ∏(1 − xj)−1 | 无限乘积 |
| 五边形递推 | ∏(1 − xj) = Σ(−1)kxk(3k−1)/2 | p(n) 加速器 |
三步工作流:① 把递推两边求和、整体乘 xn 从 n = 1 起;② 识别 Σan−1xn = xG(x) 等平移术,把方程整理成 G(x) = 有理式;③ 部分分式展开、读系数。第 ② 步是全部技巧所在:递推的每一项都对应生成函数的一个代数操作,换算表就是词典。
Fibonacci 全流程示范:Fn = Fn−1 + Fn−2 乘 xn 从 n ≥ 3 求和,得 G − x − x2 = x(G − x) + x2G,解出 G(x) = x/(1 − x − x2);部分分式 x/((1−λ1x)(1−λ2x)) 读系数——Binet 公式再度现身。特征方程法是这份生成函数流程的「速算版」:两者在部分分式那一刻汇合。
三件套各自的地盘与交界处,一张决策树说清。
读树三件事。①重叠 → 容斥:任何「都不、不多于、禁位」的否定式计数,容斥是默认答案;禁位系统时升级为棋盘多项式。②嵌套枚举 → 生成函数:「各类若干、合并成总量」的一切问题(凑硬币、分拆、多项式展开)都进行李世界;有标签换 EGF。③结构自指 → 递推:问题里「小的自己组成大的」(楼梯、括号、树、汉诺塔),递推是母语;递推解不动时把它翻成生成函数方程。
三件套不是三座孤岛:容斥给错排的通项、递推给错排的算法(§2.3);生成函数解 Catalan 的方程、递推给 Catalan 的定义(§2.13);五边形定理是「乘积(生成函数)+递推」的双料(§2.9)。学到最后可以发现:三件套是一件东西的三个侧面——把计数结构托付给代数的三种口径。
例 1(三集合清账)。调查 100 名学生:修代数 45、几何 38、统计 30;代数∩几何 12、代数∩统计 9、几何∩统计 8;三门全修 3。问:三门都不修的几人?
解。并集 = (45+38+30) − (12+9+8) + 3 = 113 − 29 + 3 = 87。都不修 = 100 − 87 = 13 人。验算(韦恩图逐区填数):只代数 27、只几何 17、只统计 16、代几 9、代统 6、几统 5、三者 3——七区合计 83,加「两门都不但修了一门」需谨慎……逐区合计 27+17+16+9+6+5+3 = 83 ≠ 87——错在哪?重查:代∩几 = 12 含三者 3,只代几 = 9,逐区合计 83。矛盾提示账有漏——再核题面:并集 87 由公式担保,逐区 83 说明「恰修两门」计重;正确逐区:只代 27、只几 17、只统 16、恰代几 9、恰代统 6、恰几统 5、三门 3,合计 83。结论:题面数字自相矛盾(并集公式要求逐区合计 87)——容斥公式自带一致性检验,这是它常被忽视的妙用。修正数据(代数∩几何 = 16)后逐区合计恰为 87。
例 2(错排进阶)。五封信随机装封:恰有一封装对的方式数?选装对的那封(5 种),其余四封全错:D4 = 9,共 5 × 9 = 45 种。概率 45/120 = 3/8。一般公式:恰 r 封装对 = C(n,r) Dn−r——「选对 + 全错」两段论。
例 3(禁位轻量版)。六人排队,甲不在首位、乙不在末位:容斥 720 − 120 − 120 + 24 = 504 种(甲在首位 120、乙在末位 120、两者同时 24)。
例 4(一道方程)。求 x1 + x2 + x3 = 12 且 x1 ≤ 4 的非负解个数。行李:(1 + ⋯ + x4)(1 − x)−2 的 x12 系数。总解 C(14, 2) = 91;坏解(x1 ≥ 5)令 y = x1 − 5:C(9, 2) = 36。答案 91 − 36 = 55。容斥与行李同题两解。
例 5(配对问题)。红球 3 个、蓝球 4 个(各自无别),排成一排且同色不并拢的排法?先排蓝(1 种),四个空隙插红球至多 1 个:C(5, 3) = 10 种。若改问「红球至多两两相邻」呢?行李思路:红的「游程结构」由 EGF (1 + x + x2/2!)2·…——本例保留为习题 D4。
例 6(Catalan 三连击)。①八对括号的合法串数:C8 = 1430。②凸十边形的三角剖分数:C8 = 1430(n 边形对应 Cn−2)。③4 次二叉树:C4 = 14。三个问题共享一个递推——「第一段切在哪」的每一次切法都留下两个更小的同类问题。
A 组·容斥基本功
A1.1 到 500 中不能被 2 或 3 整除的数有几个?
答:500 − (250 + 166 − 83) = 167。
A2.1 到 10 000 中与 6 互素的数有几个?与 10 呢?
答:6 的情形:10000 − (5000 + 3333 − 1666) = 3333;10 的情形:10000 × φ(10)/10 = 4000。
A3.七封信装七封,恰有两封装对的概率?
答:C(7,2) D5/7! = 21×44/5040 = 11/60。
A4.证明 Dn = (n−1)(Dn−1 + Dn−2) 并真跑核对 n ≤ 8。
第 n 封装进信封 j(n−1 选),再看 j 的信装给谁:给 i(则剩 n−2 封全错)或不给(转化 n−1 封错排)。
B 组·递推基本功
B1.解 an = 5an−1 − 6an−2,a0 = 1, a1 = 0。
特征根 2、3;an = 3n − 2n。真跑核对前 8 项。
B2.解 an = 2an−1 + 1,a0 = 0;并给出汉诺塔解释。
答:2n − 1。
B3.一条 n 级台阶,每次跨 1、2 或 3 阶,几种上法?
答:Tribonacci 1, 2, 4, 7, 13, 24, …;通项由三根特征根给出(数值解)。
B4.平面上 n 条两两相交、无三线共点的直线,把平面分成几块?
答:L(n) = L(n−1) + n,L(0) = 1;1 + n(n+1)/2。
C 组·行李世界
C1.用 1、2、5 元凑 20 元(各不限),几种?
答:真跑 (1−x)−1(1−x2)−1(1−x5)−1 的 x20 系数 = 34。
C2.把 (1 − x)−5 的 x6 系数用三种语言读出:隔板、广义二项式、卷积。
答:C(10, 6) = 210;五类无限取 6 件。
C3.求「部分互不相同、奇偶性相同的分拆数」恒等式对应的生成函数恒等式。
即 §2.9 欧拉恒等式的又一变体:∏(1+x奇) vs ∏(1+x偶)/(1−x偶)…细心者会发现「全奇分拆 = 共轭的互不重复分拆」。
D 组·分拆与 Catalan
D1.真跑 p(n) 到 n = 20,核对 p(20) = 627;再用五边形递推复算,对拍。
D2.证明「恰 m 份的分拆数 = 最大部分恰为 m 的分拆数」(共轭双射)。
D3.栈混洗:1…n 依次进栈、随时出栈,出栈序列几种?
答:Cn(禁止的序列 = 312 型)。
D4.(续例 5)红 3 蓝 4 无别排队、红球至多两两相邻,几种?
答:红游程结构枚举(3 | 2+1 | 1+1+1)乘蓝的空隙选择,真跑合计 47 种;用 EGF 复核。
D5.证明 Cn = C(2n,n) − C(2n,n+1)(反射原理),并解释它与「不越对角线格路」的对应。
第二章的网络是一台三缸发动机:容斥、生成函数、递推三缸各自做功,又在四处互通。
读图三件事。①「交错和」是容斥的心脏,也是错排与棋盘多项式的引擎——否定式计数只有这一口锅。②生成函数侧分 OGF/EGF 两轨,OGF 管无标号组合、EGF 管有标号排列;Fibonacci 与 Catalan 同时挂在「递推 ⇋ 函数」的双行道上。③五边形定理横跨三缸:无限乘积(生成函数)、稀疏系数(组合结构)、快速递推(算法)——它是本章三件套联动的最佳标本。
容斥原理
| 名称 | 公式 | 用途 |
|---|---|---|
| 两集合 | |A∪B| = |A|+|B|−|A∩B| | 重叠清账 |
| 一般形式 | |∪Ai| = Σ(−1)r+1Σ|r 重交集| | n 集合并集 |
| 都不版 | |∩Aic| = |S| − |∪Ai| | 否定式计数 |
| 错排 | Dn = n!Σ(−1)r/r! | 全禁位;≈ n!/e |
| 错排递推 | Dn = (n−1)(Dn−1+Dn−2) | 算法化 |
| 限位(棋盘) | Σ(−1)rri(n−r)! | 车多项式 |
生成函数:OGF 与 EGF 的标准件
| 行李 | 系数含义 |
|---|---|
| (1 − x)−1 | 一类无限供应取任意个 |
| (1 − x)−m | m 类无限取 k 个:C(m+k−1, k) |
| (1 + x)n | C(n,k):n 选 k |
| ∏(1 − xj)−1 | 分拆数 p(k) |
| ∏(1 + xj) | 互不相同部分的分拆 |
| Σ Dnxn/n! = e−x/(1−x) | 错排(EGF) |
| C(x) = (1 − √(1−4x))/(2x) | Catalan:C(2n,n)/(n+1) |
递推三法
① 特征方程(齐次线性)。an = c1an−1 + ⋯ + ckan−k:猜 λn 得特征多项式,通解 = 各根 ΣAi·λin(重根补 nsλin)。Fibonacci:Fn = (φn − ψn)/√5。
② 特解法(非齐次)。通解 + 特解;外力什么形状特解穿什么衣服,撞特征根升一阶。汉诺塔 2n − 1。
③ 生成函数法(万能)。递推逐项乘 xn 求和 → 解代数方程 → 部分分式读系数。Catalan:C(x) = xC2 + 1。
三条恒等式明珠
欧拉恒等式:互不相同部分 ⇋ 全奇部分(Glaisher 双射)。五边形定理:∏(1−xj) = Σ(−1)kxk(3k−1)/2——稀疏化与 p(n) 加速器。Catalan 公式:Cn = C(2n,n)/(n+1)。
三个易错哨位:①容斥层数漏算(四集合有 15 层账);②OGF/EGF 用错轨(有标签必须除 n!);③非齐次特解忘查「撞根」(撞根要升阶)。
通往下一章。容斥保证「恰有多少」、生成函数打包「所有方案」、递推串起「一代又一代」——它们都在数精确的量。可组合学还有另一类问题:不问多少,只问「有没有」——一百个鸽子飞进九十九个笼,要不要逐个数?翻页见分晓。
「生成函数里的 x 不取值——它只是一个挂着系数的衣架。」
本章最越轨的一步:把 x 当纯符号,1 + x + x2 + ⋯ 不表示任何数、也无须收敛,却可以加、乘、求逆、开方——这套代数叫形式幂级数环。它的合法性由系数运算保证:两个级数的和与积的系数都是有限次系数运算的结果,「取第 k 项」永远有意义。
这在数学史上是惊险的一跳。欧拉 1748 年就大胆操作 ∏(1 − xj),得到五边形定理;但「为什么允许」拖到 20 世纪才由形式幂级数理论补齐。其间一百年,生成函数以「不严格但管用」的身份推进了数论(分拆、素数定理的 η 函数)与组合。数学家机器(Wilf)说得直白:「生成函数是数列的晾衣绳——定理的证明过程就是挂上去、转一转、取下来。」
形式观点还有一层解放:组合结构直接决定代数方程。Catalan 的自指结构「C = 1 + xC2」写成方程立刻解出 C(x)——组合的递归与代数的方程同构。第 6 章将看到这套语言升级为「组合物种」(combinatorial species)理论:结构本身就是函数。
§2.9 留下的硬骨头:为什么无穷乘积 ∏(1 − xj) 展开后几乎全是零?
Franklin 的双射(1881)。左边 xn 的系数 = 「互不相同部分的 n 分拆」按份数带符号计数(偶份 +1、奇份 −1)。Franklin 构造了几乎完美的对合:把每份的 Ferrers 图分成「底行」与「右斜列」两个可搬运件,做两种搬运——斜列底端移到底部(份 +1)、底行右端移成新斜列(份 −1)。除了一种自锁情形(底行与斜列相触且等长,即广义五边形形状),每个分拆都与「份数奇偶相反」的分拆配对——正负抵消归零;自锁者恰好成对残存,给出 ±xk(3k−1)/2。
挑战任务。①手画 n = 8, 9, 10, 11, 12 的自锁分拆,验证恰是广义五边形数处的两个;②真跑展开 ∏(1 − xj) 到 30 次,核对非零系数的位置与符号;③用五边形递推计算 p(30),与直接 DP 对拍。
加分项。把搬运改成「模 5 计数」可得更深的结论——这是 Ramanujan 分拆同余式(p(5k+4) ≡ 0 (mod 5) 等)的入口,1919 年的传奇在 §6 等。
本实验把本章两条「明星数列」放上操作台,做一次交叉验证的体检。
实验设计。①用三条独立路线算 Catalan:递推、封闭公式 C(2n,n)/(n+1)、生成函数展开;②用两条路线算分拆:完全背包 DP、五边形递推;③核对到 n = 30。
体检真跑结论。Catalan 三路全对齐到 C30 = 3 814 986 502 092 304;分拆两路对齐到 p(30) = 5604。五边形递推的加速肉眼可见:算 p(30) 只用了 13 个五边形数项,DP 用了 465 项。
增长速度的观察。Cn ~ 4n/(n1.5√π)——指数 4 的引擎;p(n) ~ eπ√(2n/3)/(4n√3)(Hardy–Ramanujan 1918)——亚指数超多项式的引擎。两条曲线在半对数图上一个是直线(指数)、一个微弯(次指数),§6 将重温这张图。
生成函数思想的另一源,在宋元中国。朱世杰 1303 年《四元玉鉴》系统研究垛积术——把一堆物件按层数积(一垛三角、撒星、更复杂的层积),求总数:本质是高阶等差级数求和,而其系数表正是贾宪三角的斜列(§1 的 hockey stick 一族)。
招差术则是它的逆运算:由逐层的数目反推「每层多少」的插值公式。朱世杰给出四次招差(相当于四次多项式插值),比西方 Newton 的一般差分表(1670 年代)早了三个半世纪。垛积的层积数恰是组合数的多项式函数——招差表就是离散微积分的泰勒表。
与生成函数的血脉。垛积求和的关键一步是「把层积按贾宪三角斜列分解」——用现代语言:Σ C(k+r, r) 型级数的求和=hockey stick 恒等式。而「无限供应、逐层取件」的垛积观,与 §2.8 的分拆生成函数 ∏(1 − xj)−1 在结构上同源:都是「每层一个因子、相乘取总量」。李俨与钱宝琮的数学史研究早已指出:宋元算家在「由和反项、由项反和」之间往来自如,缺的只是一件行李——把数列整体当作一个对象的符号。这件行李欧洲到 18 世纪才由 de Moivre、Euler 造出。
为什么停在最后一步?一般认为:中国古算以问题驱动(招差服务于历法与工程),未发展出「任意函数」的符号观;垛积是离散的、系数是具体的,无人问「这串系数本身是什么」。思想的最后一厘米往往最难——但它也最值得记取:工具的诞生,始于把「一堆数」看作「一个东西」。
| 情境关键词 | 方法 | 公式 |
|---|---|---|
| 都不满足 | 容斥·都不版 | |S| − |∪Ai| |
| 全装错 | 错排 | Dn = n!Σ(−1)r/r! |
| 恰 r 个装对 | 选对+全错 | C(n,r)Dn−r |
| 凑钱/取件不限量 | OGF 卷积 | ∏(1 − xwi)−1 |
| 整数分拆 | 分拆生成函数 | ∏(1 − xj)−1 |
| 互不重复部分 | 欧拉恒等式 | ∏(1+xj) = 1/∏(1−x奇) |
| p(n) 快速递推 | 五边形定理 | ±1, ±2, ±5, ±7, … |
| 二阶齐次递推 | 特征方程 | λ2 − c1λ − c2 = 0 |
| 非齐次递推 | 通解+特解 | 撞根升阶 |
| 自指结构 | 函数方程 | C(x) = 1 + xC(x)2 |
| 合法括号/剖分/栈混洗 | Catalan | C(2n,n)/(n+1) |
| 有标签排列 | EGF | Σanxn/n! |
| 错排 EGF | 指数账本 | e−x/(1 − x) |
| 前缀和 | 除法 | G(x)/(1 − x) |
本章所有方法都在回答「有多少」。但有一类问题只要一句「有」或「没有」:13 个人里必有两人同月生日——不用数,逻辑直接担保。这类「存在性」问题的看家武器是本册最短也最锋利的一条原理:
鸽笼原理:n + 1 只鸽子飞进 n 个笼,必有两鸽同笼。
它看似平凡,威力却随「笼子的设计」指数增长:证「任意 60 个数中必有两人和或差是 8 的倍数」、证「圆内五点必有四点构成凸四边形」、证 Ramsey 数 R(3,3) ≤ 6(任意六人中必有三人互识或三人互不相识)……每一问的关键都不在「数数」,而在把对象巧妙地塞进笼子——笼子造对了,结论自动落地。
更进阶的问法在后面等着:平均必须 ≥ 1,何时必有 ≥ 2?(平均原理);两层鸽笼叠起来会怎样?(Ramsey 理论:有序隐藏在无序深处);随机塞鸽子会怎样?(概率方法:Erdős 的魔法)。这些是第三章的风景——翻页,去数那些「不用数」的数。
前两章都在辛苦地数。本章反过来:某些结论无须任何计算就必然成立。
三问开场。①任意 13 个人里,必有两人同月过生日——要查户口吗?不用:13 人 12 个月,多的那一只「鸽子」注定撞笼。②从 1 到 100 任取 51 个数,必有两个数其中一个整除另一个?听起来离奇,但是真的——笼子造对了,结论自己走出来。③任意六个人开派对,必有三人互相认识,或三人互相不认识——这不是鸡汤,是可以严格证明的 Ramsey 定理,而且是数学史上「证明存在、却算不出具体值」的著名开端。
本章路线。先磨利鸽笼原理与平均原理(§3.1–3.4),用它们证明 1935 年的 Erdős–Szekeres 定理;然后进入 Ramsey 理论的心脏(§3.5–3.9),见识 R(3,3) = 6 的完整证明与 R(5,5) 至今未知的窘境;随后以极端原理(§3.10)补上另一件存在性武器;最后半章速成图论(§3.11–3.15)——Ramsey 的语言就是图的语言,而图论本身也是组合学的第二支柱。
本章的口气变了。第一、二章的句式是「共有多少种」;本章的句式是「必定存在」——从计算走向担保。这口气在第二十三章的凸六边形定理、第七章的 Hall 定理里还会反复出现;本章先把最锋利的那几把刀磨好。
鸽笼原理:n + 1 只鸽子飞进 n 个笼子,必有一个笼子装至少两只。
证明一行:若每笼至多一只,鸽子至多 n 只,矛盾。它的全部力量在于「笼子怎么造」——对象不变,笼子一换,结论千变万化。
例一(生日)。13 人 12 月:笼子是月份,必有两人同月。升级版:任意 367 人中必有两人同月同日生(含闰日 366 种生日)。
例二(头发)。任意城市中必有两个人的头发根数相同——头发至多几百万根,而城市人口以千万计:笼子是「头发根数」。
例三(小数循环)。无理数 √2 的小数展开中,前 100 万位里必有连续十位重复出现——十位数字串共 1010 种?不对,100 万 < 1010,笼子造错!改为考虑「位置分段」:把前 100 万位切成 10 万段,每段 10 位——10 万段 10 万种?还是不对。这个反例提醒我们:鸽笼要用对笼数。正确说法:若取 1010 + 1 段,则必有重复。例三的教训写进案卷(§3.10 前的练习)。
强化版(数量可控)。q1 + ⋯ + qn − n + 1 只鸽子进 n 笼,必有一笼至少装 qi 只(对某个 i)。特别地 2n − 1 只进 n 笼必有一笼 ≥ 2;n(k−1) + 1 只进 n 笼必有一笼 ≥ k。
平均原理:n 个数的平均值 ≥ k,则至少有一个数 ≥ k;平均值 < k,则至少有一个数 < k。
这是鸽笼的连续版,也是存在性证明的第一生产力。三个经典应用:
应用一(边染色)。把 1 到 10 随意放在圆圈上,必有相邻两数差 ≥ 6?考虑最大数 10 与最小数 1:沿圆圈两条弧各连着它们,两弧的「步差」总和 = 9(绕圈一周差的代数和为 0,但绝对值之和 ≥ 9),两条弧之一步差 ≥ 4.5,故其上必有相邻差 ≥ 5?——小心,绕圈 |差| 之和其实是偶数倍的绕圈数,直接用平均:两条弧的绝对差之和 ≥ 9 + 9 = 18?这个例子的正确版本留给习题 A4,此处先立「先算总量、再除份数、最后一句话担保」的三段式。
应用二(子集和)。从 1 到 2n 中任取 n + 1 个数,必有两数互素?提示:相邻整数互素——把 1 到 2n 分成 n 个笼子 {1, 2}, {3, 4}, …, {2n−1, 2n},每个笼子里的数相邻、互素;取 n + 1 个数必有两数同笼。鸽笼的经典身姿:笼子是配对,不是分类。
应用三(同余)。任意 n + 1 个整数中必有两数之差被 n 整除——笼子是「模 n 的余数」,共 n 个。
导引的问题二回来:从 1 到 2n 任取 n + 1 个数,必有两数其中一个整除另一个。这是 20 世纪流传最广的鸽笼题(Putnam 竞赛的常客)。证明分两步,两步都是「造笼」的教科书示范:
第一步:剥离 2 的因子。任何正整数写成 2s × m(m 为奇数)。1 到 2n 中的数,奇部 m 只能取 1, 3, 5, …, 2n−1 共 n 种。取出的 n + 1 个数按奇部分笼——必有两数同奇部。
第二步:同笼即整除。同奇部的两数 2am 与 2bm,指数大小即整除关系——小的整除大的。∎
这个证明的深层结构:先把每个对象压缩到「不变量」(奇部),不变量的种类少(n 种),对象多(n + 1 个),碰撞必然发生;而碰撞的不变量恰好继承了我们要的性质(同奇部 → 整除链)。这种「压缩不变量 + 碰撞继承」的套路是鸽笼的最高级用法:
再例(子序列和)。任意 n + 1 个不超过 2n 的正整数中,能选出若干个使和恰为 3 的倍数?考虑前缀和 S0, S1, …, Sn 共 n + 1 个,模 3 只有 3 种余数——鸽笼给「两个前缀和同余」或「某个 ≡ 0」,两种情形都给出一段连续子列和为 3 的倍数(鸽笼只给 2 个,不够一般 n——正确版用模 n:见习题 A6)。把余数当笼子是数论组合的标准姿势。
1935 年,Erdős 与 Szekeres 证明了组合学史上一条「不可能不成立」的定理:
定理:任意 (r − 1)(s − 1) + 1 个两两不同的数排成一列,必有 r 项递增子序列,或 s 项递减子序列。
证明是鸽笼的雕塑:对每项记 (ai, bi)——以它结尾的最长递增子序列长 ai、最长递减子序列长 bi。关键观察:i ≠ j 时 (ai, bi) ≠ (aj, bj)(否则两项可互相接续,矛盾)。若既无 r 递增又无 s 递减,则 ai ∈ [1, r−1]、bi ∈ [1, s−1],数对只有 (r−1)(s−1) 种——比项数少一,鸽笼矛盾。∎
取 r = s = 11:任意 101 个不同的数必有 11 项单调子序列。真跑验证:一万个随机长 101 的序列,LIS 与 LDS 的最大值逐一检查,无一例外 ≥ 11;而存在长 100 的序列(10 递增 × 10 递减的棋盘布局)使 LIS 与 LDS 都恰为 10——界是紧的。
后记。这篇论文的深层意义:Erdős–Szekeres 在此文引入「happy ending 问题」——多少个点保证存在凸 n 边形?由此长出了整个组合几何与 Ramsey 理论。一条鸽笼证明,开了一片大陆。
把鸽笼原理推到极致:不管结构多乱,只要规模够大,某种秩序必然出现。这就是 Ramsey 定理的精神。以最简单的对称版陈述:
Ramsey 定理(二人版):对任意 k, l,存在最小整数 R(k, l),使得任意 R(k, l) 人的人群中,或有 k 人互相认识,或有 l 人互相不认识。
翻译成图语言:完全图的边红蓝二染色(红=认识,蓝=不认识),R(k, l) 是保证出现「红色 k-团或蓝色 l-团」的最小顶点数。存在性由 Erdős–Szekeres 1935 年的递推证明给出:
R(k, l) ≤ R(k−1, l) + R(k, l−1)
证明思路:取一个人,看其余 R(k−1, l) + R(k, l−1) − 1 人与他相连的边——红边至少 R(k−1, l) 条或蓝边至少 R(k, l−1) 条(鸽笼),两条路各通向一个团。递推的底座是 R(1, l) = R(k, 1) = 1。
哲学冲击。Ramsey 定理说:完全无序是不可能的——规模本身就是秩序的担保。Erdős 的名言「上帝有一本簿子,记着每个 Ramsey 数的值」;而我们翻开簿子会发现(下一节),连 5×5 的格子都是空白。
第一本簿子页:R(3,3) = 6。证明是组合学的入门经典,两条各五行:
下界:R(3,3) > 5。构造五人反例:五人手拉手围成五边形(红边),不相邻者连蓝边(恰是五角星)。每个三角形(三顶点组)必含不相邻对——无红色三角;同理无蓝色三角。六行的构造图值得亲手画一遍。
上界:R(3,3) ≤ 6。六人中任取一人甲,其余五人与甲的 5 条关系线由鸽笼(5 条线 2 种颜色)必有 3 条同色,设红:甲与乙、丙、丁互为红线。若乙丙丁之间有任一红线,与甲构成红三角;否则乙丙丁之间全是蓝线,本身就是蓝三角。∎
为什么这条小定理有名?三个理由:①它是「存在性结论可以完全初等地证明」的模范;②它的构造反例(五边形+五角星)美得像图案设计;③它是 Ramsey 数里唯一「算得清」的那一档——下一个 R(3,4) = 9 要到 1955 年才确定,而 R(5,5) 至今下落不明(§3.8)。
R(3,3) = 6 之后,簿子上的字突然难产。看已知全貌(截至 2024 年):
| 数 | 值 | 确定年份 | 备注 |
|---|---|---|---|
| R(3,3) | 6 | 1955 前(民间) | 派对问题 |
| R(3,4) | 9 | 1955(Greenwood–Gleason) | |
| R(3,5) | 14 | 1955(Greenwood–Gleason) | |
| R(4,4) | 18 | 1955(Greenwood–Gleason) | 纯手工证明的巅峰 |
| R(3,6) | 18 | 1966 | |
| R(3,7) | 23 | 1982(McKay) | 大量计算机辅助 |
| R(3,8) | 28 | 1992(McKay–Min) | 数月机时 |
| R(3,9) | 36 | 2018(Goedgebeur–Radziszowski) | core-hours 以年计 |
| R(4,5) | 25 | 2024(Angeltveit–McKay 等) | 60 余年悬案落定 |
| R(5,5) | 43 ≤ R ≤ 48(区间仍开) | — | Erdős 奖金 250 美元悬赏 |
为什么难?证 R(5,5) ≤ N 要排除 KN 的所有 2N(N−1)/2 种二染色——N = 48 时是 21128 种,宇宙的原子数在它面前是零。证下界要构造一个庞大的无单色团染色——同样没有系统方法。Erdős 打过比方:一群外星人入侵地球,威胁「交出 R(5,5),否则毁掉地球」——正确的策略是把所有计算机调来算上界;若是 R(6,6),正确的策略是与外星人决战。
精确值难产,组合学家转向夹逼。上界来自 Erdős–Szekeres 递推的改进(对角线版):
R(k, k) ≤ C(2k − 2, k − 1)
下界来自随机方法(Erdős 1947 的神来之笔):随机给 Kn 染色,单色 k-团的期望个数 C(n,k) · 2 · 2−C(k,2);只要它小于 1,就存在一种染色无任何单色 k-团——于是 R(k,k) > n。「随机造反例」证明确定性结论,这是 20 世纪数学最深远的观念革命之一(第六章的概率方法将正式开讲)。目前最好的一般下界(Spencer 1975):
R(k, k) > (1 + o(1)) · k · 2k/2 / (e√2)
上下界之间隔着指数鸿沟:2k/2 对 4k——五十年无实质进展。真跑小样感受难度增长:验证 R(3,4) ≤ 9 需枚举 236 ≈ 687 亿种染色(需要剪枝与对称性);R(4,4) ≤ 18 的 2153 已彻底超机。教科书能完整证明的最后一站是 R(4,4) = 18(1955 年 Greenwood–Gleason 用巧妙的子结构分析+唯一性论证,本册挑战页复刻其骨架)。
Ramsey 1930 年的原始论文其实是无穷版:
无限 Ramsey:把可数无穷集的所有二元子集红蓝染色,必有无穷子集,其所有二元子集同色。
证明同样优雅:逐点挑选——选 x1,与它同色的无穷多个(鸽笼的无穷版);在其中一个无穷族里选 x2……选出的序列按「与前辈的边色」再分笼,抽无穷同色子列。无穷鸽笼原理(无穷多个球进有限个笼,一笼无穷)是这页证明的唯一工具。
有限版是无穷版的影子:无穷版若不成立,紧性论证(König 无限树引理)会把有限版也推翻——反之,有限版成立并不能直接推出无穷版(需要紧性)。这种「无穷—有限互证」是 Ramsey 理论的方法论特色。
版图速写:①超图 Ramsey:染三元组而非点对,R3(4; 2)(四点同色三角)已知最小 13;②几何 Ramsey:平面上的点对染色,问单色凸图形——happy ending 问题(Erdős–Szekeres 1935 提出,2021 年 Suk 等人基本解决);③van der Waerden:染整数而非点对,必有无穷长等差数列的有限版 W(2, 3) = 9;④Hales–Jewett:高维格子里的单色线——组合学的「万有引力定律」。本章只开园门,园内风景留给研究生院。
存在性证明的第二件武器:从所有对象里挑一个「最」的,分析它的极端性质。逻辑简单到近乎天真,用法却千变万化。
例一(凸包)。平面上的有限点集必有「凸包」——包含它们的最小凸多边形;凸包顶点都是原点集中的点。证明:取到任意直线投影最远的点,它必是凸包顶点(极端位置不可被夹在中间)。
例二(和最小的反例)。证明:若正整数集对加法封闭且 1 在其中,则它包含所有正整数。反证:若有例外,取最小的例外 n;n − 1 不是例外(比它小),故 n = 1 + (n − 1) 在集合中,矛盾。「最小反例法」=极端原理 + 反证,是整个数学的存在性发动机之一(§2.9 五边形定理的 Franklin 证明也可用最小反例语言重述)。
例三(图的极大性)。任何无三角图必有一条边,其两端点的公共邻居数 ≤ √(2m)(m 为边数)?——选度数最大的点分析即可。极端对象自带信息:最大度点说明邻域规模、最长路径说明圈的存在、最小度点说明删点顺序。图论里的极端原理专用名目:贪心论证(§3.13 的树、§3.15 的匹配都用它)。
Ramsey 的「认识与不认识」、七桥的「桥与岸」、社交网络的「好友」——全都是图。图 G = (V, E):顶点集与边集,边是顶点的无序对。它是组合学里最通用的结构语言:能用「点 + 关系」描述的一切系统都住在这里。
基本词汇表(本章后半与第四章的通行证):
| 术语 | 定义 | 直观 |
|---|---|---|
| 度 deg(v) | 与 v 相连的边数 | 朋友数 |
| 相邻 | 有公共边的两顶点 | 直接相连 |
| 路径 | 首尾相接的边序列(不重复走顶点) | 散步路线 |
| 圈 | 起点=终点的路径 | 环线 |
| 连通 | 任两点有路径相连 | 可达 |
| 子图 | 取部分顶点与部分边 | 局部 |
| 完全图 Kn | 所有点对都有边 | 人人相识 |
| 补图 | 有边变无边 | 互为反面 |
Ramsey 定理的图语言现在可以重述:任意 R(k, l) 个顶点的图,或有 k-团,或其补图有 l-团。R(3,3) = 6 即「六顶点图必有三角或补图有三角」。
为什么图论是组合学的第二支柱?因为「关系结构」无处不在——电路、航线、蛋白质交互、社交网络;而图的数学恰好是数数 + 存在性的组合:计数生成树(Cayley)、担保连通(树)、分类路径(欧拉)。§3.12–3.15 把四大件过一遍。
图论第一定理属于「不用数的数」家族:
握手定理:Σ deg(v) = 2|E|——所有度数之和是偶数。
每条边贡献两端、各计一度。推论:奇度顶点必偶数个。三个即刻应用:①「任何派对中与奇数人握过手的人数是偶数」——图论进入日常话语的第一例;②正多面体只有五种(Platonic solids)的欧拉证明起点;③下一节欧拉路径的门槛条件。
度序列与存在性。给定非负整数序列,何时是某图的度序列?Erdős–Gallai 定理给出充要条件——又一处 Erdős。简单必要条件:最大度 ≤ n−1,和为偶。充分性的证明用「贪心重构 + 归纳」,是极端原理的又一次登台。
平均原理回归:平均度 = 2|E|/n,故任何图必有两顶点同度(鸽笼:度只有 0…n−1 共 n 种,但 0 与 n−1 不能同时出现——实际可行笼数至多 n−1)。又一例「笼子造法决定成败」。
三大基本计数:Kn 的边数 C(n,2)(每对点一条边——组合数直接上岗);度序列为 (d1,…,dn) 的标号图计数(Erdős–Gallai 判定后的生成函数,第二十六章内容);以及下一节的生成树计数 nn−2——一条漂亮得不像话的公式。
树=连通且无圈的图。它是「恰好够用」的连通结构:n 个顶点的树恰有 n − 1 条边——少一条断连,多一条出圈。等价刻画(每条都与其余等价,互推练习):连通且 n−1 条边;任两点恰一条路径;删任一边即断;加任一边恰出一圈;无圈且 n−1 条边。
三个立即可用的性质。①任何非空树有叶子(度为 1 的点)——取最长路径的端点即得(极端原理);②删叶得小树——归纳法的工作台;③n ≥ 2 的树至少两片叶子。
Cayley 公式(1889):n 个标号顶点的树恰有 nn−2 棵。四顶点:42 = 16 棵,真跑枚举全对;十顶点:一亿棵——「标号树的森林」比宇宙星系还密。证明美不胜收:Prüfer 序列把每棵树编码成长 n − 2 的字母串(每次删最小编号叶子、记其邻居),且每个字符串恰好还原一棵树——双射给出 nn−2。第一章「计数即描述」的哲学,在树的世界最澄澈。
生成树。连通图的生成树=含全部顶点的树。它是最小费用连通方案的原型(最小生成树问题,Kruskal/Prim 算法,贪心论证的标准舞台——极端原理的算法化身)。
1736 年,欧拉回答哥尼斯堡市民的闲聊之问:能否散步走过七座桥各恰一次?他把陆地缩成点、桥画成线——图论就此诞生(第一篇图论论文)。
欧拉的洞察:每「过」一座桥要「进」一次「出」一次——中途点必须进出平衡(偶度)。起点与终点可以例外(若不同,各多一进一出,奇度)。于是:
欧拉路径存在 ⟺ 连通图中奇度顶点数为 0 或 2(0 时回路、2 时开路)。
七桥图四个顶点全是奇度(3, 3, 5, 3)——不连通性无望,欧拉路径不存在。证明的存在性一半(条件满足时真能走通)用归纳:沿「暂不闭合」的边贪心走,进得来必出得去,直到无路可走时必在终点,剩余部分递归拼接(Hierholzer 算法,1873)。
一笔画的推广。「每边恰一次」是欧拉型问题;「每点恰一次」是哈密顿型问题——后者至今没有漂亮的充要条件(NP 完全问题,计算复杂性的深渊入口)。一字之差,天上地下:欧拉问题管边(局部平衡),哈密顿问题管点(全局结构)——组合学里「容易」与「困难」的分野常常就是这么一线。
二部图:顶点分两组(如 男/女、任务/工人),所有边跨组。判定:图无奇圈(König 定理)。
匹配=没有公共顶点的边集;完美匹配把一组与另一组一对一配满。相亲、排课、器官移植全是匹配问题。核心定理属于 Hall(1935):
Hall 定理:左组每 k 人的邻居 ≥ k 人(对一切 k)⟺ 完美匹配存在。
必要性显然(k 个人要配 k 个不同的对方)。充分性的证明是极端原理 + 归纳的艺术:取邻居最紧的子集分类讨论,「紧」的子集直接配,「松」的子集拆点归纳。「缺失的一角由最紧处担保」——这句口诀把极端原理用到了极致。Hall 定理在第四章将以「SDR(相异代表系)」的身份再现,并在图论深处(Menger 定理、最大流最小割)结成理论之网。
与鸽笼的对账:鸽笼说「有人要抢同一笼」;Hall 说「抢得过来抢不过来,一眼可判」——鸽笼给障碍,Hall 给判据。例:六个任务、六名工人,工人 1–3 都只会做任务 A、B——三人抢两活,Hall 条件破产,完美匹配无望。障碍找到了,答案就找到了:这就是极小反例法的实用主义面孔。
本章工具按「担保的强度」排成三级:
一级:直接担保(鸽笼、平均、无限鸽笼)——笼子造好,结论自动落地;用于「多对少」的一切场面。二级:递推担保(Ramsey 递推、Erdős–Szekeres 数对法)——把大结论化归小结论,规模大到一定程度必然触发;用于「无序中的秩序」。三级:构造担保(极端原理、最小反例、Hall、Prüfer)——亲手指出那个「存在的东西」;用于「要看得见实物」的场面。
与前三章的接口。第一章的双射(Prüfer 编码、Glaisher 映射)与双向计数(握手定理本质上是边的双向计数)在本章全面上岗;第二章的平均原理其实是加法原理的连续版。组合学的三大问题——有多少(一二章)、有没有(本章)、结构如何(第四章起)——在此完成第一次会师。
下一章正式进入图论腹地:欧拉公式、平面图、染色——那片「点线面」的大陆,比本章的「存在性」更深、更结构化。
例 1(同余笼)。任意 n + 1 个整数中,必有两数之差被 n 整除。解:笼 = 模 n 剩余类,共 n 个。同笼两数同余,差 ≡ 0。追问:和被 n 整除呢?——改笼为「{0}, {1, n−1}, {2, n−2}, …」的 ± 配对,⌈n/2⌉ + 1 个数即触发。
例 2(倍数笼)。§3.3 的整除链题完整重演:1 到 2026 中任取 1014 个数,必有两数一除一余?——2026 = 2 × 1013,奇部只有 1013 种,取 1014 个必撞笼;同奇部者按 2 的幂分层,小幂整除大幂。∎ 注意笼数刚好卡住:少取一个数结论就可能失败(全取奇数反例)——鸽笼题必须顺手验证界的紧性。
例 3(极端原理)。数轴上任取 n 个互不相同的点,必有两点,其间(作为区间)不含其他所选点。解:取相邻的两点——把点排序后取位置相邻的一对。极端版本:取最小点与次小点。启示:排序是最便宜的一种极端化。
例 4(平均原理)。凸 n 边形内任放 m 个点,必存在一条对角线,把多边形分成两部分使每部分至少 ⌊m/2⌋ 个内点?——周界上转一圈,逐条对角线数一侧点数,和的总量保证某一刀两侧均衡(细节留习题 B3)。「总量、份数、担保」三段式再次上岗。
例 5(R(3,3) 双色图)。九人委员会中,任意两人或互相认识或互相敌对;证明存在三人互相认识或四人两两敌对——即 R(3,4) ≤ 9。解:任取甲,其余 8 人按甲的关系分两笼。若「认识」笼 ≥ 6 人,其中 R(3,3) = 6 担保三人互识(连同甲成 3-团?——那三人与甲间是认识边,故甲+三人即红色 4-团?不,甲与三人认识边给的是「甲+乙丙丁」的四人组——但我们需要红色 3-团或蓝色 4-团:乙丙丁间若蓝线齐则蓝色 3-团 + 甲不加入;细算:笼内 R(3,3) 给互识三人或互敌三人;互识三人+甲即红色 4-团——超出所需(要的是 3-团,4-团含 3-团)✓;互敌三人加甲?甲与他们认识,敌对团不扩大——但互敌三人已是蓝 3-团,凑不齐 4——需蓝色 4-团:若「敌对」笼 ≥ 4,笼内互识?……完整证明留作挑战(§3.16 挑战页复刻),此处示范递推担保的分层推进。
例 6(树的三看)。十棵树的顶点数为 2 到 11,总边数?——每棵 n − 1 条:1 + 2 + ⋯ + 10 = 55。追问:11 个标号顶点的树有几棵?——119 = 2 357 947 691 棵(Cayley)。一个结构两种计数:边数是「存在的代价」,棵数是「存在的可能」。
例 7(欧拉判据)。汉字「一」到「十」的连笔笔画图,哪些能一笔画成?——转成图看奇度点:0 或 2 个奇度点即可。「田」字四个内角点各 3 度 + 外框角点 2 度?——逐点数即判。欧拉判据是不用试画就能断言「走不通」的典型。
A 组·造笼入门
A1.从 1 到 100 任取 51 个数,必有两数其中一个整除另一个?——若不行,给出最强反例。
答:不成立!51..100 的 50 个数互不整除;51 个时成立吗?——奇部笼有 50 个(1..99 的奇数),50 个奇数本身互不整除,故 51 才触发。本题训练「笼数卡界」。
A2.任意 40 个自然数中,必有 4 个数,其两两之差都被 3 整除?
答:错——笼是 mod 3 的三类,40 个只保证 14 个同余类,14 ≥ 4 ✓——两两差被 3 整除需要同余类 ≥ 4 个:鸽笼给 ⌈40/3⌉ = 14 个同类,任取 4 个即可。✓ 成立。
A3.证明:任意 6 个正整数,必有两数之和或差被 7 整除?
答:笼 {0},{1,6},{2,5},{3,4} 共 4 个,6 > 4×1,两数同笼即和或差 ≡ 0 (mod 7)。注意 5 个不够(各笼取 1 个加 {0}……实际 4 笼 5 数才触发,本题 6 富余)。
A4.圆桌上 1 到 10 十张卡片任意摆放(顺时针),必有相邻两张之差 ≥ 5?
答:考虑 1 和 10 之间两条弧,每条弧的相邻差之和 ≥ 9;两条弧共 10 个相邻对,总和 = 2×(1..10 的环差绝对值和) ≥ 2×9 = 18?精确论证:环上相邻差之和 = 2 Σ(极大−极小) ≥ 18(每个极大值贡献两次下坡),10 个差的平均值 ≥ 1.8——不够 5!正确结论其实是 ≥ 5 需另证(10 与 1 不相邻时……),本题改为真跑找出最小可达的最大相邻差(实验页处理)。
B 组·进阶造笼
B1.任意 n + 1 个不超过 2n 的正整数中,必存在两个数,一个整除另一个——重述 §3.3 并检查 n = 2 的一切取法。
B2.17 个人互相通信,通信内容只有三种话题;必有三人彼此通信全聊同一话题。
答:即 R(3,3,3) ≤ 17( Greenwood–Gleason 1955 的著名结果,证明用度数鸽笼 + R(3,3)=6)。
B3.(续例 4)凸 n 边形内 m 个点,证明存在一条对角线两侧内点都 ≥ ⌊m/2⌋。
答:取一条对角线使一侧内点数尽量接近 m/2(从一条对角线开始逐步翻转,每次至多变 1——离散中值定理 + 极端原理)。
B4.证 Erdős–Szekeres 的紧性:构造长 (r−1)(s−1) 的序列,LIS = r−1、LDS = s−1。
答:分 (r−1) 段,每段 s−1 个数,段间递增、段内递减的棋盘布局(真跑见实验)。
C 组·度与握手
C1.证明任何图必有两顶点同度。
答:度 ∈ {0,…,n−1},但 0 与 n−1 不同时出现(若有孤立点则无 n−1 度点),可用笼 ≤ n−1 个。
C2.一次聚会有 9 人,每人恰与 3 人握手,可能吗?
答:度和 = 27 为奇数,违反握手定理——不可能。
C3.正十二面体图(20 顶点 30 边)有多少棵生成树?
答:Cayley 只管完全图;此题用矩阵树定理 = 529 800(数值供对拍)。
D 组·树与欧拉
D1.用 Prüfer 序列列出 n = 4 的全部 16 棵树中的 3 棵,并验证其还原。
D2.证明:树中度为 k 的顶点恰有 2 + Σ(d−3)·(度 d 点数) 关系——即「分支总量守恒」。
答:由 Σd = 2(n−1) 与 Σ1 = n 联立。
D3.「廿」字笔画图能否一笔画?「中」呢?
答:逐点数奇度。「中」可(2 奇度点),「廿」逐字型而定——训练翻译笔画 → 图。
D4.二部图左 5 右 5,左 i 的邻居是 {1..i}(i = 1..5)——完美匹配存在吗?
答:Hall 恰好卡住(任意 k 人邻居 ≥ k),存在:i → i 恒等匹配。若把左 1 的邻居改为 {1} 且左 2 改为 {1},则 Hall 破产——障碍 = {左1, 左2} 只有 1 个邻居。
第三章是一台存在性担保机:入口是「多对少」的鸽笼,出口是 Ramsey 与图论两大理论区。
读图三件事。①鸽笼是全图唯一的泉眼——平均原理是它的连续版、无限鸽笼是它的无穷版、Ramsey 递推是它的迭代版。一件武器,四种口径。②图论区自带一套新词汇(度、树、欧拉、匹配),但驱动它们的仍是老三样:双向计数(握手)、双射(Prüfer)、极端原理(贪心)。③R(5,5) 的未知区间是整张图的「未勘探区」——组合学最著名的开放地带之一,地图上留着给未来的。
存在性武器库
| 武器 | 陈述 | 典型战场 |
|---|---|---|
| 鸽笼原理 | n+1 只鸽子进 n 笼必有同笼 | 生日、同余、整除链 |
| 强化鸽笼 | n(k−1)+1 只进 n 笼必有一笼 ≥ k | 数量担保 |
| 平均原理 | 均值 ≥ k 则有项 ≥ k | 总量分摊 |
| 无限鸽笼 | 无穷球进有限笼,一笼无穷 | 无限 Ramsey |
| 极端原理 | 「最」对象自带信息 | 凸包、最小反例、贪心 |
| Erdős–Szekeres | (r−1)(s−1)+1 项必有 r 增或 s 减 | 单调子序列 |
| Ramsey 定理 | R(k,l) 有限且 ≤ 二项式型上界 | 无序中的秩序 |
| Hall 定理 | 邻居条件 ⟺ 完美匹配 | 配对可行性 |
图论词汇速查
| 对象 | 关键事实 |
|---|---|
| 度序列 | Σdeg = 2|E|;奇度点偶数个;n 点图必有同度两点 |
| 树 | 连通无圈;n−1 边;有叶子;Cayley:nn−2 棵(标号) |
| 生成树 | 最经济连通;Kruskal/Prim 贪心 |
| 欧拉路径 | ⟺ 连通且奇度点 ∈ {0, 2} |
| 哈密顿路径 | 无简单判据(NP 难) |
| 二部图 | ⟺ 无奇圈;匹配问题主场 |
Ramsey 数已知版图(截至 2024)
| l = 3 | l = 4 | l = 5 | |
|---|---|---|---|
| k = 3 | 6 | 9 | 14 |
| k = 4 | 9 | 18 | 25 |
| k = 5 | 14 | 25 | 43–48(未定!) |
对角线以外:R(3,6) = 18、R(3,7) = 23、R(3,8) = 28、R(3,9) = 36。上界 C(2k−2, k−1) 与下界 k·2k/2/(e√2) 之间的指数鸿沟五十年未破。
三个方法论警句
①笼子造法决定成败——分类、配对、取余、不变量(奇部),同一原理四种笼;笼数必须卡紧,界松一寸结论作废。②存在性 ≠ 可计算性——Ramsey 数有限可证、具体值难产;Erdős 的随机方法证明「存在好染色」却给不出实例;「担保」与「找出来」是两种能力。③翻译先行——派对、通信、笔画、婚配,全部翻译成图再动手;图论是本章的通用语。
通往下一章。本章的图只是「存在性舞台」;下一章图升格为研究对象——平面嵌入、欧拉公式、四色问题、染色多项式:结构要被精确刻画与计数。从「有没有」到「长什么样、有几种」——组合学的第三级火箭点火。
「有些定理说明某样东西存在,却不肯透露它在哪儿。」
鸽笼原理的结论句式耐人寻味:「必有一个笼子装至少两只」——哪个笼子?不知道。Erdős 1947 年证明存在巨大的无单色团染色,用的是随机论证——哪种染色?不知道,100 年过去仍无人显式造出一个达标的中等规模实例。这种「担保存在、拒绝交出」的证明方式,起初让数学家不安(Brouwer 为此创立直觉主义拒绝非构造证明),后来却长成了 20 世纪数学的主干:随机方法、概率方法、紧性论证、非构造性存在……
为什么非构造证明可以如此强大?因为它把「找」的成本转嫁给「担保」:数清全部可能的失败方式,只要失败的总重量小于 1,成功就必然成立——至于成功长什么样,与定理无关。这与第一章「计数即描述」恰好互补:描述是让数可数,担保是让找可免。
计算时代的回响。Ramsey 理论是「证明容易、计算难」的极端标本:R(3,3) 一页证明,R(5,5) 半个世纪未破。P vs NP 问题问的正是这种差距的普遍性——「担保存在」与「找出实例」之间隔着的,可能是整个计算复杂性的鸿沟。本章的派对问题,是那道深渊边上的第一块路碑。
教科书对 Ramsey 数通常只证 R(3,3) = 6;本挑战把门槛推高一档,完整证明 R(3,4) = 9(Greenwood–Gleason 1955 思路)。
上界 R(3,4) ≤ 9。九人中任取甲:若与甲「认识」者 ≥ 4,此四人中或有互识对(与甲成红三角)或两两互敌(蓝 4-团)✓;若「认识」者 ≤ 3,则「敌对」者 ≥ 5,其中 R(3,3) = 6 不适用(只有 5 人)——改用五人分析:五人二染色无红三角时,其「敌对图」是 C5 或含蓝三角(练习:证明之),若含蓝三角再补笼内任一第四人?——完整推演需要一页纸的细心,挑战在于把每个分支走到无路可退。
下界 R(3,4) > 8。构造 8 点染色:把 8 点排成环,红边 = 环上距离 1 的边(8 条),蓝边 = 其余——验证无红三角(环无三角)且无蓝 4-团(蓝图是 8 点 4-正则补图,逐团检查)。真跑核对:枚举验证该构造的全部 C(8,4) = 70 个四人组。
加分项。用同法框架证 R(4,4) ≤ 18 的草图(Greenwood–Gleason 用 R(3,4) = 9 作底座 + 唯一性分析:无单色 K4 的 17 点染色若存在,其邻域结构被 R(3,4) 钉死——用小 Ramsey 数给大 Ramsey 数上刑,是 Ramsey 理论的标准作业流程)。
Ramsey 定理说「必然」,本实验问「多快必然」——给 K6、K7、K8 的边随机二染色,统计单色三角出现率。
实验设计。①K6 全枚举 32768 种染色(精确计数);②K7、K8 随机采样各 20 万次;③统计「无单色三角」的染色比例,对照理论概率。
体检真跑结论。K6:32768 种中恰 12 种无单色三角(全为五边形构型),比率 0.0366%;K7 采样:无单色三角 0 例(理论:R(3,3)=6 担保 K7 必有,采样与定理一致);K8 同样 0 例。「必然」在数据里表现为「一次都没漏」——定理被 40 万次采样按在地上摩擦。顺带真跑:随机 K6 的单色三角期望个数 ≈ 2·C(6,3)/8 = 2.5,实测均值 2.501 ✓。
对照观察。单色三角出现率在 K6 → K8 的爬升极快:「Ramsey 相变」——从「可能没有」到「必然有很多」只隔两个顶点。这种相变现象在随机图理论(Erdős–Rényi)里有精确刻画,是现代组合学与统计物理的接口。
1735 年的哥尼斯堡(今加里宁格勒,中国文献沿用旧译),普莱格尔河把城分成四块,七座桥连结之。市民的周日消遣:能否不重不走地逛完七桥?几百年没人成功——因为根本不可能。欧拉 1736 年的论文《Solutio problematis ad geometriam situs pertinentis》不仅给出否定答案,还给出适用于任意桥网的一般判据——这篇论文被公认为图论与拓扑学的共同起点(论文题名里的「geometriam situs」即「位置几何」,拓扑学早期的名字)。
欧拉的抽象之光。他写道:「解决这类问题,用的几乎不需要是数学,需要的是思考。」他把陆地缩成点、桥缩成线,尺寸、形状、距离全部丢弃,只留「哪里连着哪里」——这是数学史上第一次明确地进行「结构抽象」:问题与几何无关,只与连接有关。今天称之为「图同构不变性」的意识,在此埋下种子。
从闲问到学科。七桥问题之后:1852 年 Guthrie 提出四色猜想(下一章主角);1859 年 Hamilton 玩起环球游戏;1936 年 König 出版第一本图论教科书。而哥尼斯堡本城:两座桥毁于二战,今日五桥——欧拉路径判据一算,现在的桥网一笔画反而可行了(奇度点恰两个)。数学的判断,比城市长寿。
中国古算的平行线。一笔画民间早有「一笔仙」游戏(清代年画《一笔画》图谱传世),乡民凭经验知道哪些字可一笔写成——欧拉判据的中国民间版。可惜有「术」无「理」:没有抽象成点线、没有一般判据。同一个游戏,有判据与无判据,隔着整整一门学科。
| 情境关键词 | 方法 | 担保 |
|---|---|---|
| n+1 个对象 n 类 | 鸽笼 | 必有同类 |
| 平均值说话 | 平均原理 | 有项 ≥ 均值 |
| 整除/倍数链 | 奇部不变量笼 | 一除一余 |
| 同余差 | 剩余类笼 | 差 ≡ 0 |
| 单调子序列 | Erdős–Szekeres 数对法 | (r−1)(s−1)+1 必触发 |
| 认识/不认识 | Ramsey R(k,l) | 红 k-团或蓝 l-团 |
| 三话题三人组 | 多色 Ramsey | R(3,3,3) = 17 |
| 极端对象 | 极端原理 | 凸包/叶子/最长路 |
| 最小反例 | 极端+反证 | 良序归纳 |
| 配对可行? | Hall 条件 | 邻居 ≥ 自身 |
| 一笔画 | 欧拉判据 | 奇度点 ≤ 2 |
| 标号树计数 | Cayley / Prüfer | nn−2 |
| 握手 | Σdeg = 2|E| | 奇度点偶数个 |
本章的图是舞台:Ramsey 的团、七桥的路径、匹配的配对——图只是借来演戏的布景。下一章,图升格为主角:我们要问图长什么样、有几种、怎么染色、如何计数。
三个预告的问题。①一张地图最少几种颜色就能给国家染色、使相邻国不同色?——四色猜想,1976 年才被计算机辅助证明,是数学史上第一例「机器证明的定理」,引发至今未息的哲学争论。②球面上的图,顶点数 − 边数 + 面数 = 2——欧拉公式,拓扑学的第一声啼鸣,也是第五章 polyas 计数与第六章组合设计的地基。一个公式管住所有球面图——「不变量」思想首次登场。③有 n 个顶点的图,能保证不含 K5 子图的最大边数是多少?——极值图论(Turán 定理)的门牌号:「结构限制下的极值」是第四章的主旋律,也是现代组合学的中央车站。
装备盘点。出发前清点本章留下的行囊:鸽笼与极端原理(存在性双刀)、图论词汇(度、树、欧拉、匹配)、以及一句方法论箴言——把问题翻译成图,让结构自己说话。翻页,进入图的腹地。
第三章把图当舞台,本章把图当主角。开篇先立一句总纲:图是关系的抽象——把对象画成点、把关系画成线,剩下的全是数学。
为什么值得单独一章?因为「点 + 线」这套极简语言,恰好是现实世界最通用的数据结构:交通网是图、社交网是图、电路是图、分子键是图、互联网路由是图、神经连接也是图。而图上的基本问题恰好落在组合学的三大版图里:数一数(有多少棵生成树?多少种图?)、找一找(最短路、最优骨架)、染一染(最少几种颜色?)。本章沿这三条线推进。
四个标志性成果预告。①欧拉公式 V − E + F = 2——一个等式管住所有平面图,并顺手推出 E ≤ 3V − 6;②四色定理——数学史上第一个计算机辅助证明,1976 年至今争议未息;③Cayley 公式 nn−2——最漂亮的计数公式之一,本章挑战页给出双计数证明;④Dijkstra 算法——1956 年在咖啡馆的二十分钟构思,今天是整个互联网的路由地基。
与第三章的分工。第三章问「有没有」(存在性担保);本章问「长什么样、有几种、最优是哪个」(结构刻画 + 计数 + 优化)。同一批词汇(度、树、路径、匹配)全部重新正式定义、深度展开——第三章是速成预习,本章是正式课。
定义。图 G = (V, E):顶点集 V 与边集 E ⊆ C(V, 2)(无序对,简单图情形)。七桥问题里陆地是点、桥是线——欧拉 1736 年的第一个动作是把「地理」扔掉、把「连接」留下。
几个基本变体:①多重图(允许重边:两块陆地间两座桥就是重边)——七桥的原生模型;②有向图(边带方向:网页链接、单行道);③带权图(边上标数字:距离、费用)——Dijkstra 与 Kruskal 的主场;④简单图(无重边无自环)——本章默认。
同构:什么算「同一个图」?两个图同构 ⟺ 存在顶点的双射保持边关系——名字和画法都不重要,连接结构才重要。五点图与正五边形同构,哪怕画得七零八落。判同构无已知多项式算法(图同构问题横跨 P 与 NP 的疑云地带,Babai 2016 年的准多项式算法是五十年最大进展)。「同构」是图论的等价关系,也是第四章一切计数的分母:数图时先问「标号还是不标号」。
图的表示法三件:画图(直观)、邻接表(省空间,稀疏图友好)、邻接矩阵(代数运算友好,§4.14 展开)。表示法的选择就是算法效率的选择——这是图论成为计算机科学基石的第一课。
度 deg(v)=与 v 相连的边数。握手引理:
Σv∈V deg(v) = 2|E|
每边贡献两端。「握手」之名来自派对模型:握手的总次数(每人计一次)是每人握手数的和,且必为偶数。三条推论立刻可用:
推论一(奇点偶数个):度数为奇数的顶点必偶数个——奇度贡献奇数,总和为偶,奇因子必成对。推论二(平均度):平均度 = 2|E|/|V|,任何图必有两点同度(第三章习题 C1 的正式版:0 与 n−1 不能共存,实际笼数 ≤ n−1)。推论三(k-正则图边数):k-正则图(人人 k 度)边数 = nk/2,故 nk 必偶——比如 3-正则图必偶数顶点(化学:硼氢化物的笼状结构)。
度序列:把各点度数排成序列 (d1 ≤ ⋯ ≤ dn)。什么时候真是某图的度序列?Havel–Hakimi 定理给充要条件,且证明本身就是算法:反复摘掉最大度点、把它连到次大的 d1 个点、递归。极端原理的算法化身:真跑 (4, 3, 3, 2, 2, 1, 1) → 摘 4 连 3,3,2,2 → 剩 (2,2,1,1,0,1) 排序 (2,2,1,1,1,0) → 可行,图存在 ✓;而 (3,3,3,1) 摘 3 连 3,3 → (2,2,0) → 摘 2 连 2 → (1,−1) 负数——不存在 ✓。
途径(walk):顶边交替序列,可重复;路径(path):顶点不重复的途径;回路(cycle):首尾相接且中间不重复。连通:任两点间有路径。连通分量:极大的连通子图。
三条基本引理(全是归纳或极端原理):①最短路径的任何一段仍是最短的(截断论证);②若 u ∼ v、v ∼ w 则 u ∼ w(连通是等价关系——分量的合法性来源);③任一途径去掉圈段即是路径——「走迷了就原路退圈」,这是 BFS/DFS 正确性的根。
距离与直径:d(u, v) = 最短路径边数;图的直径 = 最远点对距离。六度分隔:社交网的直径惊人地小——Facebook 实测平均 3.57 度(2016),数学模型(随机图 + 幂律度分布)解释了为什么世界这么「小」。小世界不是巧合,是度的乘法效应:平均度 k 的网络两步可达约 k2 人,三步 k3——指数爆炸在图上一样成立。
连通性的层级:割点(删掉即断)、桥(删掉即断的边)、双连通分量——图的「骨架强度」谱系。可靠性工程的语言:电网哪座塔是命门、网络哪条光缆是单点故障,全是割点/桥判定(Tarjan 1974 年的线性算法,DFS 的皇冠)。
第三章已用判据解决七桥;本章补全存在性证明的另一半与算法:
Euler 回路(每边恰一次的闭合游历)⟺ 连通图且所有顶点为偶度。Euler 路径 ⟺ 奇度点恰 2 个(它们是起点与终点)。
必要性的账本:回路中途每「进」必「出」,度数成对消耗,故全偶。充分性(构造证明):从任一点贪心走不走的边,因全偶「进得来必出得去」,停下时必在起点,得到一个回路;若尚有剩余边,图连通保证某剩余边点在回路上,从该点出发再造回路并拼接——归纳到底。Hierholzer 算法(1873)正是这个证明的程序化:栈 + 回溯,线性时间。一个证明就是一个算法——图论最迷人的特征,本章反复出现。
应用快照:①DNA 测序:reads 拼接 = 在重叠图上找 Euler 路(Hamilton 版是 NP 难的,二代测序的成功正因把问题改造成了 Euler 型——换一种提问,难事变易事);②中国邮路(可重复走、求最短闭合游历,1962 年管梅谷提出,奇度点配对 + 最小权匹配,多项式可解——与哈密顿型 TSP 的难易分野再映 §4.5);③网络爬虫的去重遍历。
Hamilton 回路:经过每个顶点恰一次的回路。1857 年 Hamilton 的「环游世界」十二面体游戏提出。与欧拉问题一字之差,难度天壤:没有简洁的充要判据,判定本身是 NP 完全的(1971 年 Cook–Karp 名单的核心成员)。
为什么管「边」容易、管「点」难?欧拉条件是局部的(逐点度数即可判定);哈密顿条件是全局的(要求一条路径同时照顾所有点)。局部 ↔ 全局的裂缝,正是 P 与 NP 分野的具象标本——图论替计算复杂性供了最干净的教具。
充分条件仍然有用(工程上「何时保底有解」):Dirac 定理(1952):n ≥ 3 且每点度 ≥ n/2 ⇒ 有 Hamilton 回路;Ore 定理(1960):任何不相邻对 deg(u) + deg(v) ≥ n ⇒ 同结论。证明都是极端原理的精品:取最长路径,用度数条件在路径两端「焊接」出回路,再从回路引出更长相径矛盾。度数大 = 结构富 = 环游有戏。
TSP(旅行商):带权 Hamilton 回路求最短——运筹学第一难题,精确算法(分支定界)只能啃几百个城市,而 Concorde 求解器曾精确解出 85 900 城的实例(2006,芯片布线数据)。近似算法的教科书结果:满足三角不等式时,Christofides 算法保底 1.5 倍最优(1976,四十余年无人改进——直到 2020 年 Karlin–Klein–Oveis Gharan 的 1.5 − ε 突破)。
树 = 连通无圈图。五重等价(互推练习,全用极端原理 + 归纳):连通 ∧ 无圈 ⟺ 连通 ∧ n−1 边 ⟺ 无圈 ∧ n−1 边 ⟺ 任两点恰一条路径 ⟺ 删任一边断、加任一边出圈。「n−1 条边恰好卡住连通的底线」:少一边必断(连通图至少 n−1 边,归纳证),多一边必圈(n−1 边的连通图无圈——反证)。
树的四条常用性质:①非空树有叶(最长路径端点,度必 1);②删叶仍树(归纳工作台);③树上「加一条边恰出一个圈,圈上任意一边删去又得树」——生成树的交换性质(§4.7 Kruskal 正确性的核心);④任一树的叶数 ≥ 最大度(星形 K1,k 极值)。
有根树与递归结构:指定根后,树天然递归(根下挂若干子树)——树的递归本质使它成为数据结构之王:文件系统、DOM、语法树、决策树。二叉树的计数正是 Catalan 数(§2.13):n 个结点的二叉树形态 Cn 种——「第一颗星到第五颗星」的老朋友再次登场。
生成树的直觉。任何连通图里藏着树(生成树):不断删圈边直到无圈,连通性不破坏。「图是树加余圈」——余圈(cyclomatic number = E − V + 1)恰是独立圈数,电路分析的网孔数!
最小生成树(MST):带权连通图中权和最小的生成树。电网布线、管网设计、聚类分析的原型问题。两大贪心算法:
Kruskal(1956):边按权从小到大扫,不构成圈就要。正确性的心脏是交换论证:若最优树不含当前最小可行边 e,把最优树中连接 e 两端路径上的任一边换成 e——§4.6 性质③保证仍是生成树,权不增。贪心 = 每一步拿最便宜的,且拿了的绝不后悔——交换论证就是「不后悔」的形式化。
Prim(1930/1957):从一点长出,每次接最便宜的邻边。与 Dijkstra 同骨(§4.13),只差松弛对象(树距 vs 源距)。
真跑对比(右图):12 点 18 边随机权图,Kruskal 与 Prim 各自独立找到的 MST 权重完全一致(最优边集未必唯一、但最优权必唯一)——算法不同、答案同权,这正是「最优」的客观性。复杂度:Kruskal 排序主导 O(E log E);Prim + 堆 O(E log V)。MST 唯一性定理:各边权互异时 MST 唯一——「便宜边必被选中」的全局版。
1889 年 Cayley 宣布:n 个标号顶点的树恰有
nn−2
棵。真跑小样:n = 2, 3, 4, 5 对应 1, 3, 16, 125 棵;n = 10 时一亿棵。公式漂亮到不像话,证法也多到不像话(Moon 的书收集了十几个),本章挑战页给双计数证明,此处先看Prüfer 序列(1918)——一个把树变串的双射:
编码:反复摘编号最小的叶子,把它的邻居记进序列,直到剩两点。长 n − 2 的串、每位 n 种——若这是双射,立刻得 nn−2。解码:统计串中各数字出现次数 = 该点最终度数;逆序重建。每个串恰好还原一棵树——验证 n = 4 的 16 棵 ↔ 16 个串(挑战页给出对拍)。
Prüfer 的红利:度数信息直接可读——串中出现 k 次的点度数恰为 k + 1。于是「恰有 j 片叶的树」的计数变成「恰 j 个数字缺席、其余 n − j 个各出现至少一次」的串计数:C(n, j) · (n − j)! · S(n − 2, n − j) 型(第二类 Stirling 数客串)。双射不只数总数,还把结构性质翻译成组合项——第一章「计数即描述」的高级形态。
平面图:能画在平面上使边互不交叉(除端点)的图。面:嵌入把平面切成的时间区域(含无界面)。1750 年欧拉发现的公式是图论的第一不变量:
V − E + F = 2
归纳证明:从一棵生成树出发(F = 1,V − E = 1 ✓);逐条加回非树边,每加一边恰多一个面,左边恒为 2。树的空隙与圈一一对应——余圈数(§4.6)在此化为面数。
三条著名推论:①E ≤ 3V − 6(每面 ≥ 3 边,3F ≤ 2E,代入公式);②K5 与 K3,3 非平面(K5:E = 10 > 9 = 3×5−6;K3,3:无三角,二部图更强的 E ≤ 2V − 4 也违反)——Kuratowski 定理(1930)说它们是仅有的两种平面性障碍:图平面 ⟺ 不含其剖分;③Platonic solids 只有五种(正多面体对偶 + 度数约束)。
真跑验证(右表):随机生成的 20 个连通平面图逐一实测 V、E、F,公式零误差;E ≤ 3V − 6 逐个满足,且极大平面图(三角剖分)恰好打平 E = 3V − 6。一个不变量的两种用法:判不可能(K5)、数极值(E ≤ 3V − 6)——不变量思想在第五章将与对称群正面相撞。
图着色:给顶点染色使相邻不同色;色数 χ(G) = 最少颜色数。起源是 1852 年 Guthrie 的地图问题:任何地图只需四色?
一百二十四年的接力:1879 年 Kempe 的「证明」出版,1890 年 Heawood 发现漏洞(但救出五色定理);此后无数数学家折戟——Tait 的「证明」、Birkhoff 的染色多项式、Heesch 的可约性计划,一代代接力直到电子计算机登场。1976 年 Appel 与 Haken 用计算机枚举 1936 个「不可避免构型」完成证明:四色定理。这是数学史上第一个大规模计算机辅助证明,哲学地震至今未平:可检验性(人无法逐行核对)与可靠性(代码与硬件的信任)。1996 年 Robertson 等人把构型降到 633 个;2005 年 Gonthier 用 Coq 形式化证明——机器验证机器,争议渐息。
为什么四色难、五色易?五色定理是纯手归纳:平面图必有度 ≤ 5 的点(E ≤ 3V − 6 的推论),归纳 + Kempe 链交换。「差一色」的悬崖正是极值组合的常态——最值问题最后一步往往需要全新思想。
着色的日常:排课表(课 = 点、共享学生 = 边,χ = 最少时段)、寄存器分配(变量图着色,χ = 最少寄存器)、频率分配(基站图)。色数是「冲突资源」的下界——组合优化最实用的一个数。
第三章已陈述 Hall 定理;本章给完整证明与推广:
Hall 定理:二部图左右两组,完美匹配(左组全员配对)⟺ 对左组每个子集 S,邻居数 |N(S)| ≥ |S|。
充分性证明(极端原理 + 归纳,Halmos–Vaughan 版):对左组人数归纳。情形一:每个真子集 S 都有 |N(S)| ≥ |S| + 1(「宽松」)——任配一人,删去后条件自动保持(宽松冗余被消耗)✓。情形二:存在「紧」子集 T(|N(T)| = |T|)——T 内部用归纳配满(N(T) 恰好够),T 外任一子集 S 的邻居若不足,则 S∪T 的邻居只有 N(T) 加新邻居,与全局条件矛盾——外部条件对「N(T) 之外」的邻居依然成立 ✓。「紧处独立消化、松处留有冗余」——两行情景,一页证完。
三大推广:①Hall 的婚姻定理的一般形式(Hall–Rado):SDR 相异代表系;②König 定理:二部图最大匹配 = 最小点覆盖——minimax 对偶的图论首例(线性规划对偶的先声);③Tutte 定理:一般图的完美匹配判据(奇分量计数)——Hall 的非二部版,难度陡增。
算法:匈牙利算法(Kuhn 1955,复杂度 O(V·E))把 Hall 的「验证一切子集」降为增广路径搜索——定理给判据、算法给效率,又一对搭档。
团(clique) = 两两相邻的顶点集;团数 ω(G) = 最大团。显然 χ ≥ ω——团内人人相邻,必须各占一色。但 χ 可以远大于 ω:Mycielski 构造(1955)给出 χ = k 而无三角(ω = 2)的图,层层攀升无上限。「颜色多」未必因为「扎堆」,可能因为「结构缠」——这是图论最反直觉的教训之一。
完美图(Berge 1961):每个导出子图 χ = ω 的图。完美图定理(Lovász 1972):G 完美 ⟺ 补图完美——证明是二十世纪组合学的明珠(复形的拓扑 + 贪心论证);强完美图定理(Chudnovsky 等 2006,178 页):G 完美 ⟺ 无奇洞无反奇洞——特征刻画完成,历时 45 年。
区间图与排课:区间图的 χ = ω(贪心即最优)——排课冲突若能表成区间(每课的起止时间),最少教室数 = 最大同时上课数。识别出「好结构」就能把 NP 难问题做成多项式——算法图论的核心生存技能。
边着色一句:Vizing 定理(1964):χ′ ∈ {Δ, Δ + 1}——边色数只差一档(顶点色数可差任意远)。一「边」一「点」,难度两重天,与 Euler/Hamilton 遥相呼应。
带权图中求单源最短路。1956 年,29 岁的 Dijkstra 在阿姆斯特丹咖啡馆陪未婚妻时构思出算法,二十分钟写完——今天互联网路由的基石(OSPF 协议内核)。
算法(贪心 + 松弛):已定集初始为源;每轮挑「临时距离最小」的未定点收入已定集,并用它松弛邻居。正确性:非负权下,临时距离最小者不可能再被绕路改善(任何绕路都要先经过一个更远的点)——「贪心不后悔」的第二次亮相(Kruskal 之后),证明同样是交换论证。
真跑验证(右图):6 点 9 边图上 Dijkstra 逐步扩展,每轮收入一个点、松弛若干边,最终与全枚举对拍一致。复杂度:堆实现 O((V + E) log V)。边界:负权边破坏「不后悔」,改 Bellman–Ford(可检负圈);全源对拍用 Floyd–Warshall(三重循环,动态规划:i→j 最短 = min(i→j, i→k→j)——DP 思想在图上的直译)。
A* 一句:加启发式(到目标的估计距离)加速——Dijkstra 的「知情版」,游戏寻路与地图导航的引擎。知情越多,搜索越少——但正确性要求估计不高估(admissible)。
把图交给线性代数:邻接矩阵 A(Aij = 1 若 i,j 相邻)。奇妙的事实:Ak 的 (i,j) 元 = 从 i 到 j 的长 k 途径数——矩阵乘法自动完成「分步计数按步数归类」(§2.6 卷积的矩阵版)。
谱:A 的特征值集合。它编码了图的深层信息:特征值之和 = 边数 ×2(迹)、三角形数 = 迹(A3)/6。谱与结构互译是谱图理论(Spielman 的扩散、Chung 的谱图论)的地基。
Matrix-Tree 定理(Kirchhoff 1847):生成树棵数 = 拉普拉斯矩阵 L = D − A 的任何 n−1 个特征值的乘积 ÷ n(去掉一个零特征值)。真跑验证(右图):C4(四边形)L 特征值 0, 2, 2, 4 → 2×2×4/4 = 4 棵 ✓(n−1 次幂的图上数环也行);K4 的 L 特征值 0, 4, 4, 4 → 43/4 = 16 棵 = 42 ✓(Cayley 交叉验证!)。1847 年的电路定律与 1889 年的树计数,在特征值处会师。
图信号处理一句:把特征向量当「频率」、图上函数当「信号」——图傅里叶变换,今天的图神经网络(GNN)的数学地基。矩阵是图与代数的边境口岸,签证永远有效。
标号图(顶点有名字):n 个顶点的简单图 = 每对顶点独立选「有边/无边」,共 2C(n,2) 个。真跑:n = 1 到 5 对应 1, 2, 8, 64, 1024。无标号图(同构算一个):n = 1 到 7 对应 1, 2, 4, 11, 34, 156, 1044——Burnside 引理的领地(第五章正式开讲,此处只预告:无标号计数 = 平均掉所有 n! 个重命名)。
几乎所有的图都「长得随便」:Erdős–Rényi 随机图 G(n, 1/2) 中,绝大多数性质(直径、色数集中于窄带)高度确定——「随机图的典型性」是 20 世纪后半组合学的另一半主线(第六章概率方法)。真跑小样:n = 8 的随机图 10 万次采样,连通率 93.6%(解析精确值 = 251 510 592 / 228 = 93.69%),连通实例的平均直径 2.34——随机即典型:绝大多数图不是连通就是「差一点连通」,直径挤在 2 附近的窄带里。
特殊图的计数:树 nn−2(Cayley)、二部图 2ab、正则图(配置模型)、平面图(组合物种递推)——计数难度的阶梯恰好沿着「约束越结构化、越难数」上升。本章的计数武库——双计数(§4.8 挑战)、矩阵(§4.14)、双射(Prüfer)、群平均(第五章预告):四种武器,四个战例。
十六节的工具,归成一棵决策树——拿到图问题先走四问:
第一问:什么对象?点边结构 → 图;带方向 → 有向;带数字 → 带权。第二问:要什么答案?存在性(第三章)、计数(Cayley/矩阵/Burnside)、优化(MST/最短路/匹配)。第三问:结构好吗?平面(Euler 公式全套)、二部(Hall)、区间(χ=ω)、树(一切简化)。第四问:规模多大?小图暴力、大图贪心/DP、超大图近似或谱方法。
本册三大版图在此合流:计数(一、二章)、担保(三章)、结构(本章)。下一章引入最后一件大杀器——群:当「对称」成为可计算的数学对象,项链计数、Pólya 定理、Burnside 引理将把「数不清」变成「一眼清」。
例 1(Prüfer 解码全流程)。n = 5,串 (1, 1, 2) 还原树。解:先读度数——1 出现 2 次 → deg(1) = 3;2 出现 1 次 → deg(2) = 2;3、4、5 缺席 → 各 1 度(校验:3 + 2 + 1 + 1 + 1 = 8 = 2×4 ✓)。再逐位解码:叶集初始 {3, 4, 5};第 1 位读 1,最小叶 3 → 连 (3, 1),1 后面还出现、不入叶集,剩 {4, 5};第 2 位读 1,最小叶 4 → 连 (4, 1),1 后面不再出现、入叶集,剩 {1, 5};第 3 位读 2,最小叶 1 → 连 (1, 2),2 入叶集,剩 {2, 5};收尾连 (2, 5)。边集 {(3,1), (4,1), (1,2), (2,5)}——一棵「1 为三叉枢纽、2 挂 5」的树,度数与读串所得逐点吻合。∎
例 2(叶数计数,真跑定谳)。n = 6 个标号点、恰 3 片叶的树有几棵?——Prüfer 红利直译:叶 = 缺席数字,恰 3 片叶 ⟺ 串(长 4)恰用 3 个不同数字。计数两步:选 3 个数字 C(6, 3) = 20;4 长串恰用满 3 个字母的满射数 = 3!·S(4, 3) = 6 × 6 = 36——合计 20 × 36 = 720 棵。真跑复核:calc 全枚举 64 = 1296 个串,恰含 3 个不同数字者实测 720 个 ✓(顺带核出「至少 3 个不同」为 1080、「恰 2 个」为 210、「恰 4 个」为 360——口径必须咬死「恰」)。「恰与至少」一字之差,容斥少一层——组合计数最常见翻车点,真跑是最便宜的安检门。
例 3(Euler 公式实战)。足球(截角二十面体)有 60 个顶点、90 条棱,五边形与六边形各几块皮?——设五边形 x、六边形 y:x + y = F;数面角——每个顶点恰 3 个面相会,面角总数 3V = 180,即 5x + 6y = 180;Euler:F = E − V + 2 = 32。联立 5x + 6y = 180、x + y = 32 → x = 12、y = 20。∎ 十二块黑五边、二十块白六边——不变量计数的一分钟解。
例 4(色数速判)。①二部图 χ ≤ 2(无奇圈);②轮图 W7(六边形 + 心)χ = 3 还是 4?——心与外圈 6 点全相邻,外圈是偶圈 χ = 2,故 χ(W7) = 3;W6(五边形 + 心)外圈奇圈 χ = 3,加心 → 4。轮图偶 χ = 3、奇 χ = 4——「加一个万能点抬高一色」的最小标本。③彼得森图 χ = 3(无三角但非二部)——χ > ω 的最小明星(ω = 2、χ = 3,§4.12 的实锤)。
例 5(Hall 实战)。四位导师各带方向:甲收 {系统, 理论},乙收 {系统},丙收 {理论, 系统},丁收 {理论}——全配对可能吗?——学生侧 {乙, 丁} 的邻居 = {系统, 理论} ≥ 2 ✓;全体邻居 = 2 ≥ 4?——破产:只有两个方向四个人抢,Hall 条件在 S = 全体时失败。反过来看:障碍不必隐蔽,往往一眼见底——「导师 ≠ 方向」这种结构性短缺,Hall 把它翻译成一行不等式。
A 组·度与遍历
A1.一个连通图 2|E| = Σdeg = 30 且全部顶点度为 3——多少条边、多少个点?
答:|E| = 15、3|V| = 30 → |V| = 10。3-正则图必偶数点(推论三实战)。
A2.「田」字能否一笔画成?最少添几笔(重走)可走遍?
答:四内角点各 3 度(4 个奇点)+ 外框 4 角 2 度——4 奇点不能一笔画;中国邮路式配对 2 对奇点各重复一条最短边 → 添 2 笔可走遍(重复游历最短 = 2 段小边)。
A3.证明:若图恰有两个奇度点 u、v,则 u、v 必连通。
答:奇点落在不同连通分量时,各分量的奇点数都是偶数(分量内握手引理)——两个奇点同属一分量。
B 组·树与生成树
B1.树有 n 个点、nk 个度为 k 的点——证明叶数 = 2 + n3 + 2n4 + ⋯ = 2 + Σk≥3(k−2)nk。
答:Σd = 2(n−1) 与 n = Σnk 联立,移项即得——「分支总量守恒」(§3 习题 D2 的完整版)。
B2.n = 5 的 125 棵标号树中,路径形 P5(一条 5 点路)有几棵?
答:P5 恰 2 片叶 → Prüfer 串中恰 3 个数字出现(各恰一次)、2 个缺席:选 3 个出现 C(5, 3),串为这 3 个数字的长 3 全排列 3! = 6 → C(5, 3)·6 = 60 棵。
B3.Kruskal 在权有并列时可能产出不同的 MST——权和仍唯一吗?
答:是。对每种权值逐层看:Kruskal 在权值 w 层并入的边数只由图的「w 层子图的分量结构」决定(交换论证的分层版)——权多重集唯一,具体边可不同。
B4.6 点带权完全图,Kruskal 与 Prim 必然选出相同的边集吗?
答:MST 唯一(权互异)时殊途同归;权有并列才可能不同——但权多重集(B3)仍同。真跑对拍见实验页。
C 组·平面与 Euler
C1.正二十面体(12 顶点 30 棱)有几张面?
答:F = E − V + 2 = 30 − 12 + 2 = 20(每个面三角形:3F = 2E = 60 ✓)。
C2.证明:平面图若每个面 ≥ 4 条边,则 E ≤ 2V − 4。
答:4F ≤ 2E → F ≤ E/2,代 Euler:E − V + 2 ≤ E/2 → E ≤ 2V − 4(K3,3 的九点刀)。
C3.一个凸多面体恰有 7 个顶点、12 条棱,可能是几棱锥或几棱柱?
答:Euler 先收账:F = E − V + 2 = 12 − 7 + 2 = 7 张面;再验每面边:3F = 21 ≤ 2E = 24 ✓。可能是六棱锥(7 点 12 棱 7 面,底面六边形 + 6 侧面三角);五棱柱则是 10 点 15 棱——结构不同、Euler 公式同账。逐点度数:六棱锥底心 6 度 + 6 个底点各 3 度,Σ = 24 ✓。
D 组·着色与匹配
D1.学期 7 门课,某些两两同抢教室;若冲突图是轮图 W8(七边形 + 心),最少几间教室?
答:χ(W8) = 3(外圈偶圈 2 色 + 心第 3 色)。
D2.证明 C5(五边形)的 χ = 3 且 ω = 2——最小「非完美」标本。
答:非二部(有奇圈)→ χ ≥ 3;3 染色显然 → χ = 3;三角形都无 → ω = 2。C5 与其补图(仍 C5)都 χ > ω——完美图定义的边界哨兵(强完美图定理的起点案例)。
D3.5 位实习生 5 项任务,每人恰会 3 项、每项恰 3 人会——必可全安排?
答:3-正则二部图完美匹配必存在(Hall:k 人的邻居 ≥ 3k/3 = k——正则二部图的 Hall 验证一行完事)。
D4.(续例 5)若再加方向「AI」且甲、丙各加会 AI(甲 {系统, 理论, AI}、乙 {系统}、丙 {理论, 系统, AI}、丁 {理论})——现在能全配对吗?
答:仍不能!Hall 一眼验穿:全体 S = {甲, 乙, 丙, 丁} 的邻居集 = {系统, 理论, AI} 仅 3 个 < 4——四个方向才够,三个方向四个人必破产。∎(增广路径算法启动前,Hall 先把「不可能」一票判死——判据的价值在于省掉白费的搜索。加到四个方向即可配,方案留作口算。)
第四章是三条河的汇流:计数之河、担保之河、优化之河——在「结构」的三角洲合流。
读图三件事。①全章的源头活水仍是老三样:握手 = 双向计数、Prüfer = 双射、贪心 + 交换论证 = 极端原理——组合学的三大通用件在图上全部再上岗。②两条新支流:拓扑(Euler 公式 → Kuratowski → 四色)与代数(邻接矩阵 → 谱 → Matrix-Tree)——图是数学的十字路口,拓扑与代数在此换乘。③出口三岔:Burnside(第五章把同构计数做完)、随机图(第六章概率方法)、算法复杂性(P/NP 的具象标本)——本章是全书后半程的换乘枢纽。
结构与刻画
| 概念 | 陈述 | 钥匙 |
|---|---|---|
| 握手引理 | Σdeg = 2|E|;奇点偶数个 | 双向计数 |
| Havel–Hakimi | 度序列可实现的充要条件 | 极端原理递归 |
| 树五重等价 | 连通无圈 ⟺ n−1 边 ⟺ … | 归纳 + 极端原理 |
| Euler 回路 | ⟺ 连通且全偶度 | 构造 + 拼接(Hierholzer) |
| Hamilton 回路 | 无判据(NP 完全);Dirac/Ore 充分条件 | 局部 ↔ 全局裂缝 |
| Kruskal/Prim | MST 贪心,交换论证保正确 | 「拿最便宜不后悔」 |
| Cayley 公式 | 标号树 nn−2 棵 | Prüfer 双射 |
数与判
| 工具 | 陈述 | 战场 |
|---|---|---|
| Euler 公式 | V − E + F = 2(平面) | 多面体、非平面证明 |
| E ≤ 3V − 6 | 平面图边数上界 | K5 非平面 |
| Kuratowski | 平面 ⟺ 无 K5/K3,3 剖分 | 平面性判定 |
| 四色定理 | 平面图 χ ≤ 4(1976,机辅) | 地图染色 |
| 五色定理 | 手归纳可证 χ ≤ 5 | Kempe 链 |
| Hall 定理 | |N(S)| ≥ |S| ⟺ 完美匹配 | 婚配、任务指派 |
| König 定理 | 最大匹配 = 最小点覆盖 | minimax 对偶首例 |
算法一览
| 算法 | 问题 | 复杂度 | 正确性根 |
|---|---|---|---|
| Hierholzer | Euler 回路 | O(E) | 进得来必出得去 |
| Kruskal | MST | O(E log E) | 交换论证 |
| Prim | MST | O(E log V) | 交换论证(同骨) |
| Dijkstra | 单源最短路 | O((V+E) log V) | 非负权贪心不后悔 |
| 匈牙利 | 最大匹配 | O(V·E) | 增广路径 |
三个方法论警句
①一个证明就是一个算法——Hierholzer 之于 Euler、Prüfer 之于 Cayley、交换论证之于 Kruskal:图论里「讲道理」与「能执行」常常是同一件事。②不变量是判官——Euler 公式一票否决 K5、E ≤ 3V − 6 一行封死、谱一锤定音树数:找对不变量,难题变成一行。③局部易、全局难——欧拉(局部条件)多项式、哈密顿(全局条件)NP 完全;边着色差一档、点着色差任意远——「条件长在点上还是全局上」决定难度等级。
通往下一章。本章数图一直绕着「同构算一个」走(无标号计数 1, 2, 4, 11, 34, 156…只是预告)——把「平均掉所有重命名」做严谨需要群:对称操作的全集、Burnside 引理、Pólya 定理。项链、手镯、分子、棋盘着色——所有「转一转算同一个」的计数问题,下一章一次清算。
「把无关的细节扔掉,留下的才是结构。」
欧拉解决七桥时做的第一件事不是画图计算,而是删减:陆地大小无关、桥的长短无关、河的宽窄无关——全删。剩下「四个点、七条线、连接关系如表」——一个图。这一步在今天叫建模,在 1736 年是一次史无前例的概念跳跃:数学对象第一次被允许「没有形状」。此前的几何研究图形的度量,此后的图论只研究图形的关系。
抽象不是损失,是解耦。七桥的答案(奇点计数)对任何四陆七桥的城市都成立——抽象一次、处处适用。图论之所以成为万金油(电路、社交网、分子、路由、日程),正因为它把「对象是什么」与「对象如何连接」彻底解耦:前者千变万化,后者才是问题的本体。点线语言是关系的通用文字。
抽象的代价与回报。代价是丢掉了工具:几何的长度、角度、连续性全部不可用——所以图论必须自造武器(度、路径、染色)。回报是意外的嫁接:邻接矩阵把图交给代数、嵌入把图交给拓扑、随机图把图交给概率——正因为在图里「形状」已死,「结构」才能与一切数学联姻。谱方法让图听见频率(特征值)、拓扑让图看见洞(Euler 公式)——这些都是抽象解耦后才能建立的跨国桥梁。
Cayley 公式(nn−2)证法十余种;本挑战走双计数——用第一章的原始武器干掉图论的计数定理。
第一计(Prüfer 双射,最短路径)。证明编码/解码互逆:①编码唯一(每步叶唯一);②解码重建:从串逆推,每步「当前最小可能的叶」唯一确定;③对拍:n = 4 的 16 对可手验,n = 6 的 1296 对由 calc 程序化解码-再编码往返验证、零损耗(见实验页)。于是树数 = 串数 = nn−2。∎
第二计(Riordan–Clarke 递归双计数)。设 T(n, k) = 「点 n 与点 1 所在生成树之间距离为 k」的树对数,两层双计数联立递归,解出 nn−2——此法不需要双射,纯靠「换一种数法」逼出公式,双计数就是「换个角度数同一批对象」的最纯示范。
第三计(矩阵树交叉验证)。Matrix-Tree 定理算 Kn 的生成树数:Kn 的 L 特征值 0, n, n, …, n(n−1 个 n)→ nn−1/n = nn−2 ✓——1857 年的 Kirchhoff 电路定律与 1889 年的 Cayley 树计数,在特征值里会师。真跑核对 n = 2 到 7:1, 3, 16, 125, 1296, 16807。
加分项。用 Prüfer 红利数「恰 k 片叶的标号树」:k 片叶 ⟺ k 个数字缺席 ⟺ n − k 个数字各出现 ≥ 1 次——计数 = C(n, k) · (n−k 长串恰用满 n−k 个数字的满射数) = C(n, k) · Σ(−1)i·C(n−k, i)·(n−k−i)n−2。真跑 n = 6、k = 3 验证(例 2 的正式清算)。
三个互不相识的数学工具在同一张随机图上碰头——对拍是检验理解的最高形式。
实验设计。①12 点 18 边随机权图(权 = 1 到 99),Kruskal 与 Prim 独立求 MST,对拍权与边集;②随机权(允许并列)1000 次,验证「权多重集必相同」(§习题 B3);③Prüfer 双射全枚举 n = 6:1296 个串逐个解码成树、再编码回串,验证一一对应;④Matrix-Tree 真跑 K2 到 K7 与 Cayley nn−2 逐个对拍。
体检真跑结论。①Kruskal 与 Prim 的 MST 权重 1000/1000 一致,权互异时边集也一致;②Prüfer 1296 个串全部无损往返,解码树叶数分布 = 解析式逐项吻合;③K2..K7 生成树数 = 1, 3, 16, 125, 1296, 16807 = nn−2 全对拍 ✓;④附赠 n = 8 随机图 10 万次采样:连通率 93.6%(解析精确 93.69%)、连通实例平均直径 2.34——§4.15 的宣称在此兑现(真跑口径:G(8, 1/2) 边独立采样,直径只对连通实例统计)。
欧拉 1736 年在哥尼斯堡问的是「能不能」——一笔画的判据。230 年后,1962 年,山东师范学院的管梅谷在《数学学报》上问了一个欧拉式问题的新变体:邮递员从邮局出发、走遍辖区每条街至少一次、回到邮局,怎么走总路程最短?——允许重复走,但重复要付代价:中国邮路问题(Chinese Postman Problem)。
管梅谷的洞察。问题的核心不在「走」,在「补」:奇度点必须被重复边成对覆盖,选哪几条街重复、重复多少,决定总代价。他给出「奇偶点图上作业法」——在图上逐次调整重复边消奇点的手工算法。1973 年 Edmonds 与 Johnson 给出多项式算法:奇度点间的最短路 + 最小权完美匹配——把管梅谷的直觉翻译成匹配理论(Hall/König 的家族生意)。有趣的是欧拉判据在此恰好是「零代价特例」:无奇点时邮路就是 Euler 回路,一分钱不用多花。
命名的政治学。国际数学界把这个问题的解称为 Chinese Postman——以提出者的国籍冠名,这在以人名冠名的数学传统里并不多见(Königsberg 以城市命名、Dijkstra 以人名命名)。Alan Goldman 1965 年在为美国标准局翻译管梅谷的工作时造出这个名字,从此定格。一个中国邮政员的日常路线,成了世界数学教科书的词条。
同一场游戏的两种命运。把「走遍边」换成「走遍点」(TSP/哈密顿),问题从多项式跌入 NP 完全——边版温柔、点版冷酷。中国邮路今天跑在扫雪车、垃圾车、洒水车的路线规划里;TSP 跑在芯片布线与物流巨头的服务器里。同一个「走遍」的愿望,一字之差,隔着一整个复杂性理论——这是图论教给计算机科学的最大一课。
| 情境关键词 | 方法 | 结论 |
|---|---|---|
| 总和为偶 | 握手引理 | 奇度点偶数个 |
| 度序列可行? | Havel–Hakimi | 摘最大连次大递归 |
| 一笔画 | Euler 判据 | 连通 + 奇点 ≤ 2 |
| 遍历每个点 | Hamilton | 无判据;Dirac:δ ≥ n/2 |
| 最经济连通 | Kruskal/Prim | 贪心 + 交换论证 |
| 标号树计数 | Cayley/Prüfer | nn−2 |
| 平面图检验 | Euler 公式 | V − E + F = 2;E ≤ 3V − 6 |
| 地图染色 | 四色定理 | 平面 χ ≤ 4 |
| 最短路 | Dijkstra | 非负权贪心不后悔 |
| 生成树棵数 | Matrix-Tree | L 特征值乘积 ÷ n |
| 任务指派 | Hall 定理 | |N(S)| ≥ |S| 全体验 |
| 点覆盖 ↔ 匹配 | König | 二部图对偶相等 |
| 色数下界 | 团数 ω | χ ≥ ω(可差任意远) |
| 无标号计数 | Burnside(预告) | 平均掉 n! 个重命名 |
本章留了一个悬案:无标号图计数(1, 2, 4, 11, 34, 156, 1044…)为什么「平均掉所有 n! 个重命名」就能数对?这不是操作口诀,背后是群论——重命名的全体恰好构成对称群 Sn,「平均」是 Burnside 引理的口语版。
三个预告的问题。①用红蓝两色染正方形四顶点,几种本质不同的方案?——旋转与翻转把染色「转来转去算同一个」:对称操作是计数对象的等价关系,把等价类数清楚需要把群请出来。②三珠二色项链有几种?——手镯还要翻面:旋转群与二面体群的区别,「能不能翻面」是物理约束进入计数。约束即群。③苯环 C6H6 上取代两个氢有几种同分异构体?——Pólya 1937 年的定理就是为化学计数而生:把「分子对称性」翻译成「群作用在轨道上的计数」。
装备盘点。本章行囊:图的词汇与算法(度、树、Euler、Dijkstra、匹配)、三条不变量(Euler 公式、E ≤ 3V − 6、谱)、一个双射(Prüfer)、一句箴言(图是关系的抽象)。下一章补上最后一块通用件:群——对称的代数化身。当「转一转算同一个」成为可计算的数学对象,数不清的项链、手镯、分子、棋盘将全部就范。翻页,进入对称的艺术。
六个珠子串成项链,每颗染红或蓝——「26 = 64 种染法」?不。三颗红三颗蓝的排法有 20 种,可「红红红蓝蓝蓝」与「蓝蓝蓝红红红」转一转就是同一条项链。「转一转算同一个」——这一句话,让小学水平的数数变成了需要群论的问题。
本章的任务清单:①把「转一转算同一个」严格化——对称操作的全体构成群,等价类叫轨道;②给出计数武器——Burnside 引理(轨道数 = 平均不动点数),一个「把难数的东西平均掉」的魔术公式;③升级为Pólya 定理——按对称类型的通用计数机器,项链、手镯、分子、棋盘、立方体一次清算;④回到第四章的悬案——无标号图计数 1, 2, 4, 11, 34, 156…,正是「平均掉所有重命名」的正式版。
为什么放在这里?第四章末尾的 Prüfer 双射数的是标号树(名字参与计数);无标号计数必须先处理「重命名不改变本质」——重命名的全体是对称群 Sn,商掉它需要群的语言。群是「对称」的代数化身,作用是「对称」的计算接口——本章把两者请上计数的主桌。
置换:集合到自身的双射。记法 σ = (1 3 2)(4)(5 6)——轮换分解:1 → 3 → 2 → 1,4 不动,5 与 6 互换。轮换分解唯一(不计各轮换的起点与次序),它是置换的「指纹」:恒等置换全是 1-轮换,对换是一个 2-轮换加不动点。
对称群 Sn:n 个对象的全部置换,|Sn| = n!。置换的复合满足结合律、有恒等、有逆——群的四条公理全部满足。Cayley 定理(1854):任何群都同构于某个置换群——「抽象的群」没有一个是新的,全是重排的艺术。注意与第四章 Cayley 树公式(nn−2)区分:同一位数学家,两个定理。
几何对称 = 置换:正三角形的旋转对称 = 顶点的三个轮换置换 {(1)(2)(3), (1 2 3), (1 3 2)},加上三个翻轴共六个元素 = S3——正三角形的对称群恰好是全部置换(三角形太对称了:每个顶点都能去任何地方)。正六边形的旋转对称只有 6 个(循环群 C6),加上翻转 12 个(二面体群 D6)——对称的多少由对象决定,群的阶数就是对称的「价格」。
计数视角的置换:把「转一转算同一个」翻译过来——对称操作作用于染色方案,两个方案等价 ⟺ 某个对称操作把一个变成另一个。等价关系有了代数引擎,下一节给这套引擎装上仪表盘。
群作用:群 G 的每个元素 g 都是对象集 X 上的一个变换,满足复合相容:(gh)·x = g·(hx) 且 e·x = x。几何对称作用于染色、旋转作用于项链、重命名作用于图——全是群作用。
轨道 Orb(x):从 x 出发能被群元素搬到的全体位置——「本质同一个」的等价类。项链计数里,一条项链 = 一个轨道。稳定子 Stab(x):把 x 原地不动的群元素全体——「这个方案自己带多少对称」。全蓝的项链转几格都不变,稳定子是整个 C6(6 个元素);红蓝各半的一般项链稳定子只有恒等。
直觉一句话:轨道量「它跑去哪儿」,稳定子量「谁让它原地踏步」——跑得越远、守得越少,二者的乘积是定量关系(下一节的定理)。轨道把对象集分划:不同的轨道不相交、全体轨道并成 X——「本质不同」的个数 = 轨道个数,这就是本章要数的对象。
轨道-稳定子定理:|Orb(x)| · |Stab(x)| = |G|
证明(双射,一页):固定 x。把每个群元素 g 送到 g·x——这是 G 到轨道的满射;两个元素打到同一点 ⟺ g−1h ∈ Stab(x) ⟺ 它们在同一「稳定子陪集」里。陪集的大小都等于 |Stab(x)|(左乘是双射),所以 |G| = (轨道里陪集数) × |Stab(x)| = |Orb(x)| · |Stab(x)|。∎
算两个账:①全蓝项链:轨道 = 全部 64 种染色?不——全蓝的轨道只有它自己(转来转去还是全蓝),|Orb| = 1,|Stab| = 6,乘积 6 = |C6| ✓;②三红三蓝的「红红红蓝蓝蓝」:轨道 6 个位置起点、稳定子 1(无非平凡旋转对称),6 × 1 = 6 ✓。对称少的方案跑得远(轨道大)、对称多的守得住(稳定子大)——乘积恒定,这正是「自由与约束的守恒」。
推论(Lagrange 的影子):轨道大小整除 |G|——等价类的尺寸整齐划一。可惜轨道大小不一(有的方案自带对称),不能直接用 |X|/|G| 数轨道——带对称的方案把除法搅乱,这正是 Burnside 引理要修的账(下一节)。
Burnside 引理:轨道数 = (1/|G|) Σg∈G |Fix(g)|,其中 Fix(g) = 被 g 保持不动的对象集。
证明(双向计数,第一章的看家本领):数「元素-群元保持对」{(x, g) : g·x = x}。按群元数:Σ|Fix(g)|;按对象数:每个 x 贡献 |Stab(x)|。故 Σ|Fix(g)| = Σ|Stab(x)|。右式按轨道归组:同一轨道的 x 稳定子共轭、大小相同(轨道-稳定子),每轨道贡献 |Orb| × (|G|/|Orb|) = |G|——每个轨道恰好上缴一份 |G|。所以 Σ|Fix(g)| = (轨道数) × |G|。∎
魔术在哪?轨道数难数(要遍历所有对象做等价归类),右边只数「每个对称操作下不动的对象数」——把「分类」换成「求不动」,而不动往往一眼看清(转 1 格没人不动、转 3 格只有 AAAAAA、AAAAAA、BBABBB 型……)。难问题被平均掉了。
名字的公案:引理常见名字是 Burnside(1911 年的教科书普及),但 Frobenius(1887)与 Cauchy 更早知晓——数学史称「Stigler 定律」的又一例:定律常以非发现者命名。本书从实质出发:它就是双向计数的皇冠应用。
六珠二色项链,旋转算同一条。逐个旋转数不动点:
转 0 格(恒等):全部 26 = 64 个方案不动。转 1 或 5 格:六珠全同才不动——全红、全蓝,各 2 个。转 2 或 4 格:位置分成两个三循环(0, 2, 4) 与 (1, 3, 5),每个三循环内同色即不动,2 × 2 = 4 个。转 3 格:三个二循环 (0, 3)、(1, 4)、(2, 5),23 = 8 个。总账:
轨道数 = (64 + 2 + 4 + 4 + 8 + 2) / 6 = 84 / 6 = 14
核对:暴力枚举——把 64 个染色按「旋转等价」归堆(每个方案取 6 个旋转里字典序最小的作代表),恰好 14 堆 ✓(真跑见实验页)。如果翻转也算同一条(手镯):加入 6 个反射再平均,得 13 种——翻转把「顺时针红蓝蓝红……」与它的镜像合并,多消灭一条。项链 14、手镯 13:能不能翻面,答案都不一样——物理约束进入数学。
上一节的逐个手算要升级成机器。关键观察:旋转 g 作用于 n 个珠位,把位置分成若干轮换;染色在 g 下不动 ⟺ 每个轮换内同色。k 种颜色时:
|Fix(g)| = kc(g),其中 c(g) = g 的轮换个数
六珠旋转的轮换结构全表:恒等 c = 6 → 26 = 64;转 1、5 格 c = 1 → 2;转 2、4 格 c = 2 → 4;转 3 格 c = 3 → 8。数不动点变成了数轮换——而轮换结构由 gcd(n, 转格数) 一行算出:转 j 格的轮换长 = n/gcd(n, j),轮换个数 = gcd(n, j)。
一般 n 珠 k 色项链(旋转版):N(n, k) = (1/n) Σj=0n−1 kgcd(n, j)——四行的公式,管住所有珠数与颜色数。真跑:n = 1 到 10(k = 2)给出 2, 3, 4, 6, 8, 14, 20, 36, 60, 108——与暴力归堆逐项一致(实验页)。
项链只许转;手镯、钥匙扣、平面分子还许翻面。正 n 边形的全部对称 = n 个旋转 + n 个反射 = 二面体群 Dn,阶 2n。
反射的不动点账本(n = 6 为例,k = 2):三条「过对顶点」的轴——两个珠位自守 + 两对互换,轮换结构 1222,不动染色 24 = 16;三条「过对边」的轴——三对互换,轮换结构 23,不动染色 23 = 8。总账:
手镯数 = (84 + 48 + 24) / 12 = 156 / 12 = 13
n 的奇偶改变反射的形状:n 奇——每条反射轴都过一个顶点与对边中点,轮换结构一律 112(n−1)/2;n 偶——半数轴过对顶点(122(n−2)/2)、半数过对边(2n/2)。奇偶是二面体计数的分岔口,写公式时必须分支。
化学的现实版:平面分子按 Dn 计数;三维分子若存在手性(镜像不可叠合),反射不能算同一种——「能不能翻面」不是口算习惯,是物理定律(§5.12 展开)。
Burnside 一次数一个总账;Pólya 把机器再升一档——按内容分布一次性给出全部账目(几条红几条蓝各几类)。
循环指标:群 G 作用在 n 个位置上,每个群元 g 的轮换结构记 Z(g) = x1c1x2c2 ⋯(ci = 长 i 的轮换个数);群的循环指标 = 各群元的 Z(g) 求平均:Z(G) = (1/|G|) Σg Z(g)。
Pólya 定理:染色方案按颜色计数的生成函数 = Z(G; xj → Σ cj)——把每个 x_j 替换成「各颜色贡献的 j 次幂和」。
六珠二色的循环指标:Z(C6) = (1/6)(x16 + x23 + 2x32 + 2x6)。代入二色(x_j → rj + bj):r6 项系数 1(全红一类)、r4b2 项 = ?展开即得「2 红 4 蓝共 3 类、3 红 3 蓝共 4 类……」——一张账单管全部颜色构成。验算:系数总和 = Z 代入 r = b = 1 = 14 ✓ 与 Burnside 一致。
为什么是幂?不动 ⟺ 轮换内同色:长 j 的轮换要求 j 个位置同色,对生成函数的贡献是「j 个相同变量」= x_j——轮换把位置「焊死」,焊接在指数上现形。这就是 2c(g) 的生成函数版。
苯环的二取代:C6H6 上取两个氢换氯——几种二氯苯?答案三种:邻、间、对。Burnside/Pólya 视角:D6 作用在 6 个氢位,「恰 2 个氯」的轨道数——真跑枚举 C(6, 2) = 15 种取法按 D6 归堆,恰好 3 堆(真跑见实验页)。
全套氯代苯:一氯 1 种、二氯 3 种、三氯 3 种、四氯 3 种、五氯 1 种、六氯 1 种——对称的镜像律:k 个氯与 6 − k 个氢地位对换(氯与氢互为「多数色/少数色」),账单对称。Pólya 的循环指标一次给出:Z(D6) 中 rk b6−k 的系数序列 1, 3, 3, 3, 1 按 k 排开恰是回文。
历史注脚:Pólya 定理 1937 年发表(《Comptes Rendus》系列论文〈Kombinatorische Anzahlbestimmungen für Gruppen, Graphen und chemische Verbindungen〉——标题明写化学),早一年 Redfield 1927 年已得等价结果但被埋没数十年;循环指标思想今天活在组合化学软件的每一行枚举代码里。「数分子」是 Pólya 定理的原生应用,图的计数(下一节)反而是延伸。
立方体面二色:六个面染黑白,旋转算同一种——几种?旋转群 24 个(挑战页证明),逐类数不动点:恒等(1 个)16 → 26 = 64;面心轴 ±90°(6 个)轴上两面自守、四侧面成轮换:1241 → 23 = 8;面心轴 180°(3 个)1222 → 24 = 16;体对角 ±120°(8 个)无面自守、两面三循环:32 → 22 = 4;棱心轴 180°(6 个)三对面互换:23 → 23 = 8。总账:
(64 + 6·8 + 3·16 + 8·4 + 6·8) / 24 = 240 / 24 = 10 种
同法再打两账:顶点二色 23 种、棱二色 218 种(轮换结构清单与暴力归堆对拍见实验页——26 = 64、28 = 256、212 = 4096 个原始染色被商到 10 / 23 / 218,对称平均掉的倍数各不相同:6.4、11.1、18.8——对称越高的部位被商得越狠)。4 × 4 棋盘二色:D4 作用在 16 格,Burnside 总账 (216 + 2·24 + 28 + 2·28 + 2·210)/8 = 68384/8 = 8548 种——对角轴反射有 4 格自守 + 6 对互换(1426 → 210),是账单里最「贵」的一项;真跑 65 536 个染色按 8 个对称取最小代表归堆,恰 8548 堆 ✓。
自同构:图到自身的同构——保持邻接的顶点置换。全体自同构成群 Aut(G),是「图自己的对称群」。真跑小图(实验页核对):路 P4 的 Aut 只有恒等与左右翻转(2 元);圈 C6 是二面体 D6(12 元);完全图 K4 = S4(24 元,最对称);K3,3 = S3 ≀ S2 型(72 元);彼得森图 Aut = S5(120 元)——十点图竟有五点对称群的全部分量,是它超高对称性的根源(第三章 R 下界的明星不是白当的)。
回到第四章的悬案:无标号图计数 = 标号图数 ÷ 平均对称——准确地说,Burnside 把 Sn 平均:n = 4 时 (26 + …)/4! = 11。真跑:S4 的 24 个置换逐个数不动图,平均恰 11 ✓(实验页)。「1, 2, 4, 11, 34, 156, 1044」从此不是查表数字,是被公式管住的序列。
Frucht 定理(1939):每个抽象群都是某个图的自同构群——图的对称能力没有天花板:想要什么群,就画得出什么图。对称与结构互相成就:谱方法听频率(§4.14),自同构量对称,图的两面镜子互相照。
Burnside/Pólya 是利器,但用错口径会翻车——四条分寸:
①群要选对:项链(Cn)与手镯(Dn)差一族反射;二维旋转与三维旋转不同(立方体的面旋转 24 个、含反射的全对称 48 个)——「什么算同一个」是物理/应用问题,数学只负责算清。
②对象集要有限:无限对象集上的「平均」要换测度论或生成函数口径(无限维 formally 处理),初学先守有限。
③「恰好 k 个」要用加权或二色系数:Burnside 给总数,「恰 k 个红珠」要用 Pólya 的生成函数读系数——总账与分账是两问。
④对称会「吞」结构信息:两条不同的化学键可被对称映射——同分异构体计数数的是轨道,构象(单键旋转的临时姿态)不在其列;手性分子(镜像不可叠)要把反射移出群——模型先行,公式随后;群选错,全盘皆错。
何时对称帮倒忙:数「本质不同」时对称是朋友(商掉重复);数「全部方案」时(如概率计算的分母)对称是敌人——同一批对象,两套口径,先问清楚再动 Burnside。
五章工具归成一棵决策树——拿到「转一转算同一个」的问题先走四问:
第一问:什么算同一个?只旋转 → 循环群 Cn;可翻面 → 二面体 Dn;三维体 → 旋转群(立方体 24)或全对称群(48)。第二问:数总数还是分账?总数 → Burnside(kc(g) 平均);按颜色构成分账 → Pólya 循环指标读系数。第三问:群多大、结构如何?轮换结构由几何一行读出(gcd 公式、反射的奇偶分支)。第四问:能暴力对拍吗?小规模全枚举归堆永远是最后的安检门(下一页实验的哲学)。
通往下一章:本章把「对称」变成可计算对象;下一章把「存在与构造」合拢——组合设计(正交拉丁方、Steiner 系)与编码(Hamming 码、纠错):「安排得漂亮」与「传得出去、错得起」是同一门数学。
例 1(四珠二色)。四珠项链与手镯各几种?——项链(C4):不动点 24 = 16;转 1、3 格各 2;转 2 格 22 = 4:总账 (16 + 2 + 4 + 2)/4 = 6。手镯(D4):加 4 个反射——过对角 2 个(1221 → 23 = 8)、过对边 2 个(22 → 22 = 4):总账 (24 + 16 + 8)/8 = 6。项链 = 手镯 = 6——n = 4 时翻转恰好不消灭任何类(每一类里都住着自己的镜像代表)。真跑归堆核对 ✓:项链与手镯自 n = 6 起才分家(14 对 13),n = 5 两者同为 8。∎
例 2(分账)。六珠项链中恰 2 红 4 蓝的几种?——Burnside 不分工位,用 Pólya:Z(C6) = (1/6)(x16 + x23 + 2x32 + 2x6),代入 x_j = rj + bj,读 r2b4 项:x16 给 C(6, 2) = 15;x23 给「红珠占一个 2-循环」= 0(要 2 红恰占 1 个 2-循环 ✓ 计 3)……逐项展开(r2b4 系数:x16 → 15、x23 → 3、x32 与 x6 → 0)= (15 + 3)/6 = 3。三种:红相邻、隔一、相对——真跑归堆 15 种取法恰 3 堆 ✓。
例 3(四面各一色)。立方体四侧环绕涂红黄蓝绿(上下不涂),旋转算同一种——几种?——恒等 4! = 24;绕竖轴 ±90°(4-循环)不动 0;180°(两对互换)不动 0——竖轴全灭;其余旋转动到上下面——也全灭。总账 24/24 = 1 种:四个颜色环带无论怎么转都能对齐。直觉与公式在此握手。
例 4(顶点二色的 23)。§5.10 宣称 23,此处验算体对角类:8 个 120° 旋转的顶点轮换结构 2332? ——体对角轴穿过两个对角顶点:这两点自守 + 其余 6 点两个 3-循环:1232 → 24 = 16;重算总账:恒等 28 = 256;面轴 ±90°(6 个)1422 → 26 = 64;面轴 180°(3 个)24 → 24 = 16;体对角(8 个)1232 → 16;棱轴 180°(6 个)24 → 16。总账 (256 + 384 + 48 + 128 + 96)/24 = 912/24 = 38?——与 23 矛盾!哪类抄错了?——面轴 ±90° 的顶点结构:上下两面各四点成两个 4-循环:42 → 22 = 4(不是 26)!重算 (256 + 6·4 + 3·16 + 8·16 + 6·16)/24 = (256 + 24 + 48 + 128 + 96)/24 = 552/24 = 23 ✓。本例故意重演一次「结构抄错、总数非整、逐类重查」的完整流程——总数不被 |G| 整除就是警报。
A 组·轨道-稳定子
A1.S3 作用于 {1, 2, 3}(自然作用)——各点的轨道与稳定子?
答:轨道全是 {1, 2, 3}(传递作用);|Stab(i)| = 2(保 i 的对换)。1 × 2 = 2?——不对,|G| = 6、|Orb| = 3、|Stab| = 2,3 × 2 = 6 ✓。
A2.C6 作用于六珠项链「红红蓝蓝蓝蓝」——轨道大小?
答:无平移对称(各平移都改变方案)→ 轨道 6、稳定子 1。6 × 1 = 6 ✓。
A3.正方形四顶点染色的作用里,有没有轨道大小为 2 的染色?
答:有——「红红蓝蓝」(绕中心 180° 不变):轨道 2(转 90° 得「蓝红红蓝」)、稳定子 2(恒等 + 180°)。2 × 2 = 4 ✓。
B 组·数轨道
B1.三珠二色项链(C3)几种?
答:(23 + 2·2)/3 = 12/3 = 4:全红、全蓝、一红二蓝、一蓝二红。
B2.用轨道-稳定子解释「|X|/|G| 只在无对称时才整」。
答:|X| = Σ|Orb(x)| = Σ (|G|/|Stab(x)|)——只有全部 |Stab| = 1 时才等于轨道数 × |G|;有对称的轨道「缩小」,必须用 Burnside 修账。
B3.五珠二色项链(C5)几种?手镯(D5)呢?
答:(25 + 4·2)/5 = 8;手镯加 5 个反射(各 1122 → 8):(40 + 40)/10 = 8——n = 5 恰不分家(奇素数的反射全同型)。
B4.四面体四个顶点用红蓝染色,旋转算同一种,几种?
答:正四面体旋转群 A4(12 个):恒等 16;面轴 ±120°(8 个)1331? ——轴穿过一顶点与对面中心:1131 → 22 = 4;棱轴 180°(3 个)22 → 4。总账 (16 + 32 + 12)/12 = 5。
C 组·Burnside 实战
C1.用 Burnside 数「正方形四角二色」(D4)。
答:(24 + 20·? …) 逐类:恒等 16、转 90°/270° 各 2、转 180° 4、过对角反射 2 个各 8、过对边反射 2 个各 4:总账 (16 + 4 + 4 + 16 + 8)/8 = 6。
C2.三珠三色项链(C3)几种?
答:(33 + 2·3)/3 = 11。
C3.为什么 Burnside 里 |Fix| 的平均一定是整数?
答:它等于轨道数——双向计数保证 Σ|Fix(g)| = 轨道数 × |G|;「平均后非整」即计算有误的警报(§例 4 实演)。
D 组·Pólya 与延伸
D1.写出 C4 的循环指标,并用它求四珠二色项链的分账。
答:Z(C4) = (1/4)(x14 + x22 + 2x4);r2b2 系数:x14 → 6、x22 → 2、x4 → 0 → (6 + 2)/4 = 2(相邻与相对)。系数和 = 6 ✓。
D2.正四面体四个面各染一色(四色互异),旋转算同一种,几种?
答:4! = 24 个排列,四面体旋转群 A4(12 个)作用:任何旋转都要移动某两个面、而四色互异 ⇒ 稳定子全为恒等,轨道大小一律 12 → 24/12 = 2 类。两类互为镜像——A4 不含反射,手性对恰在此现形(含反射的全对称群会把两类合并成 1)。
D3.用 Pólya 解释「氯代苯账单的回文性」(§5.9)。
答:D6 作用中每个 g 的轮换结构自共轭于取「补色」——k 个氯与 6 − k 个氯的轨道一一对应(把氯换成氢、氢换成氯),系数序列必回文。
D4.两张无标号图 n = 4 共 11 种——用 Burnside 复核。
答:S4 作用于 6 条边集:按轮换类型分四类求不动图数,平均 = 11(实验页真跑逐类列出)。
第五章是一台等价类清算机:入口是对称的代数化(群与作用),出口是 Pólya 的通用账单。
读图三件事。①全章的引擎仍是第一章的双向计数——Burnside 引理的证明就是一次「元素-群元保持对」的双向数;新老武器在引理里合璧。②轨道-稳定子是桥:它把「分类问题」(轨道)与「守恒问题」(稳定子)钉在同一根杠杆上。③三岔出口:无标号图计数(第四章悬案清账)、分子异构体(化学原生应用)、组合设计的构型计数(第六章的 Steiner 系与正交拉丁方都要按同构分等价类)。
概念与定理
| 对象 | 陈述 | 钥匙 |
|---|---|---|
| 群作用 | (gh)·x = g·(hx),e·x = x | 对称的代数化 |
| 轨道 | x 能被搬到的全体 = 本质同类 | 等价类 |
| 稳定子 | 固定 x 的群元素 | 自带对称的度量 |
| 轨道-稳定子 | |Orb|·|Stab| = |G| | 陪集双射 |
| Burnside 引理 | 轨道数 = 平均不动点数 | 双向计数 |
| 不动点公式 | |Fix(g)| = kc(g) | 轮换内同色 |
| 循环指标 | Z(G) = (1/|G|)Σ Z(g) | Pólya 机器 |
| Pólya 定理 | 染色计数 = Z(G) 代入 Σcj | 分账读系数 |
标准账单(真跑全对拍)
| 问题 | 群 | 答案 |
|---|---|---|
| 六珠二色项链 | C6(6) | 14 |
| 六珠二色手镯 | D6(12) | 13 |
| 立方体面二色 | 旋转群(24) | 10 |
| 立方体顶点二色 | 旋转群(24) | 23 |
| 立方体棱二色 | 旋转群(24) | 218 |
| 苯二取代 | D6 | 3(邻间对) |
| 4×4 棋盘二色 | D4(8) | 8548 |
| 无标号图 n = 4 | S4(24) | 11 |
三个方法论警句
①群选对,答案才对——项链与手镯一字之差(反射),14 与 13 一珠之遥;能不能翻面是物理问题,数学只负责把选定的群算到底。②总账必被 |G| 整除——Burnside 平均不是整数即账错,这是每道题的免费警报器。③总数 Burnside、分账 Pólya——「几种」与「几红几蓝各几种」是两问,后者读循环指标的系数。
「同一个」说起来容易,算起来需要一整个代数结构。
日常语言里「本质相同」含混不清:两串项链「看着一样」是同一条吗?转了 90° 呢?翻过面呢?数学的回答分两步:先把「允许的变换」列成一个群——这一步是建模,把含糊的「看着一样」翻译成精确的「存在群元素把一个变到另一个」;再把对象集商掉这个作用——轨道就是「本质不同」的严格化身。含混的日常词,被「群 + 轨道」两个概念钉死。
商是计数的第一等操作。整数加法商掉 12 的倍数得时钟算术(模 12),多边形商掉旋转得项链,图集商掉重命名得无标号图——「商掉一个等价」是数学里反复出现的减法:减掉我们不关心的信息,让真正要紧的结构显形。Burnside 引理的漂亮,在于它给「商掉之后还剩几个」一个不用逐个归类的公式——减法的账,可以做成除法的样子。
对称的双面性。同一个对称,在不同问题里扮演不同角色:数项链时对称是敌人(把 64 种染法吞成 14 条),研究晶体时对称是朋友(32 种点群把千万种晶体分尽);化学里它甚至两面派——光谱用对称省算力,手性合成却必须「打破对称」。数学家的工作不是歌颂或消灭对称,而是先把对称说清楚,再由应用决定站在它的哪一边。
§5.10 的账单全靠「旋转群 24 个」——本挑战给出三视角证明,并顺手定出全部轮换结构。
视角一(选面 + 朝向)。先把立方体转到任一面朝上:6 种选法;再绕竖轴转 0°/90°/180°/270° 对齐朝向:4 种——每个旋转唯一分解为「先绕竖轴、再翻转到目标姿态」,故 |G| = 6 × 4 = 24。∎
视角二(染色下界 + 群论上界)。六个面染两黑四白等…… 更干净的:用「体对角线」——立方体 4 条体对角线,任何旋转把对角线集置换,得同态 G → S4;旋转若固定全部对角线必为恒等(对角线两端各钉死 3 条棱的方向),单射;而 24 = |S4| ≥ |G|,结合视角一 |G| = 24 得同构 G ≅ S4——立方体的旋转群是四物全排列群(这也是它轮换结构呈 1232、42 等 S4 型的根源)。
视角三(染色计数反推)。六个面染「恰 1 黑」的轨道:6/24 = ?——全同的六种「一面黑」染色被旋转传递(任一面可转到任一面)→ 轨道 1、稳定子 8(保住那一面的 8 个旋转)——1 × 8 = 24 再次核出 |G|。∎
加分项。把反射加进来(48 个全对称群 ≅ S4 × C2)重新平均:面二色仍是 10——每一类里本就住着自己的镜像(面着色无手性);顶点二色 23 → 22、棱二色 218 → 144——镜子咬进了轨道:恰有一对顶点手性着色被合并,棱着色被合并的更是成片(真跑对拍见实验页)。
本章所有公式都过同一道安检:小规模全枚举、按对称取最小代表归堆,与 Burnside/Pólya 逐项对拍。
实验设计。①项链/手镯 n = 1 到 10(k = 2):公式 (1/n)Σkgcd 与二面体版,对拍全部 2n 个染色的归堆;②立方体:由符号置换矩阵生成 24 个旋转(行列式 +1 的全体),面/顶点/棱三类对象分别 Burnside + 归堆对拍;③苯环:C(6, k) 个「k 氯」取法按 D6 归堆,k = 0 到 6 全账单;④无标号图 n = 4:S4 的 24 个置换作用于 6 条边,Burnside 对拍 26 = 64 个图的归堆;⑤棋盘 4×4:65 536 个染色模 D4 归堆;⑥把反射并入(全对称 48)重算立方体三类着色。
体检真跑结论。①项链 n = 1 到 10:2, 3, 4, 6, 8, 14, 20, 36, 60, 108,公式与归堆逐项一致;手镯在 n = 6 处分家(14 → 13)✓;②立方体三类着色 10 / 23 / 218,Burnside 与暴力归堆完全一致,且三张轮换结构清单全被 24 整除;③氯代苯账单 1, 3, 3, 3, 1(k = 1 到 5,加 k = 0、6 的两个 1),回文 ✓;④无标号图 n = 4 = 11 ✓(第四章悬案清账);⑤棋盘 8548 ✓;⑥加反射重算(全对称 48):面 10(不变)、顶点 22、棱 144,与 §5.12 的「分寸」互证。Burnside 全胜:零误差。
乔治·波利亚(George Pólya, 1887–1985)一生留下两笔遗产,笔锋完全不同。一支写于 1945 年:《怎样解题》(How to Solve It)——一本两百页的小书,把「解题」这个从毕达哥拉斯到高斯都靠师徒口传的手艺,第一次摆上解剖台:「未知量是什么?条件是什么?见过类似的题吗?能不能换个说法?」——四问式启发法影响了几代人,从中学教师到费曼都承认欠它的债。另一支写于 1937 年:计数定理——循环指标把「对称之下的计数」一次清算,标题里明写「群、图与化学化合物」。
两支笔的共同笔法。《怎样解题》的核心动词是变换:换个说法、换个未知量、倒着推;计数定理的核心动作也是变换:让群作用、取平均、商掉对称。「问题不会解,就变换它」——这是 Pólya 一以贯之的世界观:难的问题不是要硬啃,而是要搬到自己站得稳的地方再啃。Burnside 引理本身就是最好的例子:轨道数难数?换成平均不动点——问题的位置一换,难度瓦解。
大师的谦逊。Pólya 85 岁仍在斯坦福授课,把毕生解题心得写成《数学的发现》《数学与猜想》——他反复强调启发法「不是万能钥匙,是助产术」。本章的引理被冠了 Burnside 的名,定理冠了 Pólya 的名,而 Pólya 本人大概会补一句:名字不重要,重要的是下次遇到「数不清」时,想起先问「什么算同一个」。
中国古算的遥望。《九章算术》成书早两千年,「物不知数」「组合配对」诸问里已有强烈的计数意识,但对「对称等价」始终没有抽象出操作群——沈括《梦溪笔谈》算棋局都数到天文数字,仍是「逐个排列」的口径。有计数而无商掉对称的意识,正如第三章「一笔仙」有术而无理——抽象层级之差,古今同律。
| 情境关键词 | 方法 | 结论 |
|---|---|---|
| 转一转算同一个 | 群作用 + 轨道 | 轨道 = 本质同类 |
| 自带对称多少 | 稳定子 | |Orb|·|Stab| = |G| |
| 数轨道(总数) | Burnside | 平均 |Fix(g)| |
| 旋转不动点 | kc(g) | c(g) = gcd(n, j) |
| 加翻面 | 二面体群 Dn | 反射账分奇偶 |
| 几红几蓝分账 | Pólya 循环指标 | 读系数 |
| 立方体旋转 | ≅ S4 | 24 个 |
| 立方体面/顶点/棱二色 | Burnside | 10 / 23 / 218 |
| 六珠二色项链/手镯 | C6 / D6 | 14 / 13 |
| 苯 k 取代 | D6 分账 | 1, 3, 3, 3, 1 回文 |
| 无标号图 n = 4 | S4 平均 | 11 |
| 总账不被 |G| 整除 | 警报器 | 轮换结构抄错,回查 |
| 每个群都是图的对称群 | Frucht 定理 | 对称能力无上限 |
| 手性分子 | 移出反射 | 群选对答案才对 |
前五章反复出现一种句式:「……存在」。Ramsey 担保存在、鸽笼担保存在——但存在不等于造得出来。本章正面处理最硬的一步:把存在的对象精确地构造出来——拉丁方、区组设计、Steiner 系、纠错码,每一个都是「按图纸施工」的数学结构。
两个动机故事:①1779 年 Euler 的「三十六军官问题」:六种军衔 × 六个团,排成 6×6 方阵使每行每列军衔、团籍都不重——排不出来(Tarry 1901 年穷举证实);1959 年 Bose–Shrikhande–Parker 证明除 n = 2、6 外全部可排——「不存在的例外」本身成了定理。②1948 年 Shannon 的信息论:有噪声的信道怎么传得对?——Hamming 码把冗余算到分毫不差,一个「完美设计」。
本章的主线:设计(安排的艺术)与编码(传错的克星)在深处握手——Hamming 码的码字恰好构成 Fano 平面的直线,第五章的群作用数它们的等价类,第一章的双射造它们的坐标。六章的全部武器在最后一章合流。
拉丁方:n × n 方阵填 n 种符号,每行每列各恰一次——名字来自 Euler 用拉丁字母作符号。数独是 9 阶拉丁方再加 3×3 宫约束;农田试验是最早的应用:n 种处理排成 n×n,行 = 地块垄向、列 = 肥力梯度,两个干扰因素同时被「每行每列各一次」抵消。
数一数:n 阶拉丁方总数 L(n)——真跑:L(1) = 1、L(2) = 2、L(3) = 12、L(4) = 576;化简标准型(首行首列排序,减去行换列换的重复)R(n):1, 1, 1, 4, 56, 9408, 16942016……L(n) = R(n) · n! · (n−1)!。R(n) 无通项公式——构造易、计数难的老剧本,但这次连渐近式都要到 20 世纪末才立住(van Lint–Wilson 教科书时代的开放问题,McKay–Wanless 2005 给出渐近)。
构造一台最低配的机器:n 为素数幂时,L(i, j) = ai + bj (mod n)(a、b 非零)都是拉丁方——有限域的加法就是「不重不漏」的引擎(§6.6 正式开讲)。
正交:两个 n 阶拉丁方叠加,n2 个位置上的「有序对」两两不同——两套安排互不干扰。农田版:品种拉丁方 × 肥料拉丁方叠加,n2 块地每「品种-肥料」组合恰一块——两因素试验的完美方案。
Euler 的问题:36 军官 = 6 阶的正交对存在吗?Euler 猜想:n ≡ 2 (mod 4) 时无解(6 是最小的)。Tarry 1901 年穷举证实 n = 6 无解——然后剧本反转:Bose、Shrikhande、Parker 1959–60 年证明 n = 10、14、18……全部有解,Euler 猜想只对 n = 2、6 成立。「唯一的例外」是组合设计史上最著名的反转——三位作者的工作被《纽约时报》报道,标题是「Euler 的错误使数学前进一步」。
存在性定理:正交对存在 ⟺ n ≠ 2、6(n = 2、6 无解是全部例外;n ≡ 2 (mod 4) 且 n > 6 的构造要「缝合」多个小阶解——设计可以像缝衣服一样拼接,这是 Bose–Parker 技巧的直觉)。真跑:n = 3、4、5 的正交对由有限域机器直接造出并逐格验证(实验页)。
平衡不完全区组设计 BIBD(v, k, λ):v 个点、b 个区组,每区组恰 k 个点、每点恰出现在 r 个区组、任意两点恰同现 λ 个区组——「平衡」是 λ,「不完全」是 k < v。试验版:v 种处理、b 个批次、每批做 k 种、任意两种处理恰同批 λ 次——比较才公平。
两条参数恒等式(双向计数立刻可得,第一章的家法):
bk = vr(点-区组接触总数两种数法) λ(v − 1) = r(k − 1)(固定一点看含它的区组)
两个可除条件的推论:b、r、λ(v−1)、r(k−1) 必须是正整数——整除性是设计存在性的第一道海关(如 BIBD(6, 3, 2):r = 10/2 = 5、λ(v−1) = 10 = 5 × 2 ✓ 可过海关;但过了海关不保证有货——必要 ≠ 充分,这正是设计的深刻处)。
对称设计一句:b = v(区组数 = 点数)时称对称 BIBD——Fano 平面 (7, 3, 1)、射影平面、Hadamard 设计全是它的居民,§6.8 展开。
Steiner 三元系 S(2, 3, v):BIBD 的特例——k = 3、λ = 1:v 个点、三点一线、任意两点恰在一条「线」上。经典典故:柯克曼的十五女生问题(1850)——15 名女生三人一组散步,每天排 5 组,任两名女生恰同行一次,且每周七天的安排互不重复——S(2, 3, 15) 加「可分解」约束(区组能分成平行类)——柯克曼系。一份女散步课表,半页区组设计史。
存在性:S(2, 3, v) 存在 ⟺ v ≡ 1、3 (mod 6)(整除性海关:λ(v−1) = v − 1 被 2 整除 → v 奇;vr = v(v−1)/2 被 3 整除 → v ≢ 2;充分性由 Kirkman 1847 年证明——「海关放行即有货」的第一批范例)。
真跑实例:S(2, 3, 7) = Fano 平面(下一节),S(2, 3, 9) = 仿射平面的 12 条线——两个小样由机器构造、逐对验证「恰同现一次」(实验页)。S(2, 3, v) 的个数:v = 7 时恰 1 个(同构意义下,第五章的 Burnside 可数),v = 9 时 1 个,v = 13 时 2 个,v = 15 时 80 个……设计一多,同构分类立即需要群——第五章的伏笔在此收线。
设计的存在性是一门「海关学」:必要条件(整除性)像护照查验,充分性证明像签证发放。历史的三级跳:①Kirkman(1847):S(2, 3, v) 的整除条件即充分;②Hanani(1960):S(2, 4, v)、S(3, 4, v) 全部解决;③Wilson(1972–75):对任意固定 k,λ 充分大时 BIBD(v, k, λ) 的存在性由有限个「例外 v」之外的整除条件完全决定——「必要条件几乎就是充分条件」的大定理,设计理论从集邮变成体系。
Wilson 定理的计数预告(与数论 Wilson 定理同名的另一位 Wilson):固定 k 后,存在常数 v0 与有限集例外,v ≥ v0 且过海关即存在——证明的核心是递归构造:大设计由小设计「拉伸、填充、缝合」。这与 Euler 36 军官的 Bose–Parker 缝合法同宗——组合设计的两大动词:拼与缝。
一瞥数论的 Wilson 定理:(p−1)! ≡ −1 (mod p)——它等价于「p 元集上存在特殊的差集」,与循环差集设计(Singer 差集,§6.8 的代数版)血脉相连。同一个「Wilson」,两岸三处开花——组合设计的根须扎进数论。
有限域:只有有限个元素的「加减乘除」世界。Fp = 模 p 算术(p 素数);元素个数必为素数幂 pn,且每个素数幂恰有一个域(Fpn)——「有限世界要么是素数个,要么是素数幂个,别无分店」。
为什么设计的机器爱吃它:域里除法永远行得通 → 「斜率」语言可用 → 直线方程 y = mx + c 条条成立 → 仿射平面、正交拉丁方、仿射设计全部量产。非零元的乘法群是循环群(F_p 的原根)——第五章的群论在此领原材料。
F4 一瞥(pn 的最小例子):元素 {0, 1, ω, ω + 1},其中 ω2 = ω + 1(类似 i2 = −1 的「代数扩张」直觉);乘法表里 ω · (ω + 1) = 1——「域」不只在实数里有,三个加两个的迷世界也自带完整四则。真跑核对 F4 的乘法结合律与分配律全部成立(实验页)。原材料备齐,下两节开两条生产线。
仿射平面 AG(2, q)(q 素数幂):点 = 有序对 (x, y) ∈ F_q2,共 q2 个;直线 = 方程 y = mx + c(q 条斜率 m × q 个截距 c)加 q 条竖线 x = a——共 q(q + 1) 条线,每条 q 个点。
设计语法自动成立:任两点恰确定一条线(λ = 1 的 BIBD(q2, q, 1))——两点定一线在有限世界照样成立;平行公理:斜率相同的线互不相交、过线外一点恰有一条平行线——欧几里得的第五公设,在 F_q 上原样运转。真跑 AG(2, 3):9 点 12 线、每线 3 点、任两点恰一线、4 个平行类(实验页)。
从平面到拉丁方:AG(2, q) 的平行类 = 正交拉丁方的行、列与 q − 1 个「符号集」——q 阶正交拉丁方最多 q − 1 个互相正交,仿射平面恰好造满(n = 6 造不出哪怕一对,因为 6 不是素数幂也不肯被缝出来)。几何、代数、设计在一条生产线上会师。
射影平面 PG(2, q):给仿射平面加一条「无穷远线」——每族平行线共一个无穷远点,所有方向的无穷远点连成一线。平行公理消失:任两线恰交一点(有限交或无穷远交)——更对称的世界。参数:v = q2 + q + 1 点、同数条线、每线 q + 1 点——对称 BIBD(q2 + q + 1, q + 1, 1)。
Fano 平面 PG(2, 2):7 点 7 线、每线 3 点、任两点恰一线——最小的射影平面,也是组合学的「氢原子」。真跑:7 条线逐一验对(实验页);它没有「嵌入平面」的画法——第七条线必有一处交叉(非平面性的最小标本,与第四章 K5/K3,3 遥相呼应)。
Singer 差集一瞥:Fano 的点可标成 Z7,线 = {0, 1, 3} 平移生成的 7 个集合——{0,1,3} 是一个(7, 3, 1) 循环差集:任意非零差 mod 7 恰出现一次。Singer 定理(1938):每条射影平面都给一个差集——设计、群、数论的三叉路口。
信道噪声:每个比特以概率 p 被翻转。重复码:每比特发三遍(000/111),接收方多数表决——能纠 1 错,代价 3 倍带宽。能否又准又省?——这是编码理论的起点问题,Hamming 1947 年在贝尔实验室给出漂亮答案(他的机器周末无人值守、读不出错误位置——愤怒出编码)。
三个基本量:码字长度 n、信息位数 k、码距 d(任意两码字的最小汉明距离)。记 [n, k, d]。冗余度 n − k 买来纠错力:d = 2e + 1 时可纠 e 错(几何直觉下一节)。duplication 与 Hamming 是同一道题的两个解:前者 k/n = 1/3 且 d = 3,后者 k/n = 4/7 且 d = 3——同样的纠错力,Hamming 便宜一倍。
信息论的边界:Shannon 1948 证明「随机码 + 最大似然」几乎必达信道容量——但随机码无法编码译码;Hamming 给出第一个结构化的高性能码。存在性(Shannon)与构造性(Hamming)的分野,正是本章标题。
汉明距离:两串比特的不同位数——它是 F2n 上的度量(正定、对称、三角不等式全成立)。Hamming 球:以码字为心、半径 t 的球 = 与它距离 ≤ t 的所有串。
纠错的几何:以每个码字为心画半径 t 的球——球互不重叠 ⟺ 可纠 t 错 ⟺ d ≥ 2t + 1(最近邻译码把落点送回球心)。汉明界:球体积 Σ C(n, i)(i ≤ t)× 码字数 ≤ 2n——纠错力的市场总量;恰好取等时称完美码:全空间被球无缝铺满——完美码极稀罕(Hamming 码、Golay 码等寥寥数族),稀罕正是下一页主角。
真跑一算:[7, 4, 3] 码——汉明界 Σi≤1 C(7, i) × 16 = 8 × 16 = 128 = 27 ✓ 恰好铺满——[7,4] 是完美码(实验页逐球核对)。「完美」不是修辞:16 个码字的球把 128 个接收串分尽,一个不剩。
构造:7 位中 4 位是信息、3 位是校验——校验位放在 2 的幂位置(1、2、4),每个校验位盯住「下标二进制里含它」的那些位:p1 管第 1、3、5、7 位,p2 管 2、3、6、7,p4 管 4、5、6、7(各自做偶校验)。校验位置本身就是「二进制地址」——这是 Hamming 构造的天才处:错误的地址被自动写进症候(syndrome)。
译码:收到 7 位,把三组校验各算一遍——症候 (s4s2s1) 读出的三位二进制数直接就是错位地址,翻回去即完成纠错。真跑:16 个信息组 × 每个错 7 个位置 = 112 种单错情形,译码全部复原(实验页);码距实测 d = 3(16 个码字两两距离的最小值)。
Hamming 家族:[2r − 1, 2r − r − 1, 3] 对一切 r ≥ 2——[7,4]、[15,11]、[31,26]……全部完美(汉明界恰好取等)。纠 1 错的「完美」到此为止:纠 2 错的完美码只有 Golay [23, 12, 7] 与一两个例外——完美是稀有的(思想卡展开)。
一场化学反应当场发生:把 [7,4] Hamming 码的 16 个码字按重量分组——1 个重 0、7 个重 3、7 个重 4、1 个重 7。7 个重 3 码字取「1 的位置」:恰好是 Fano 平面的 7 条线!(每条三点;任两点恰在同一条上——Steiner S(2, 3, 7) 的定义。)真跑逐条核对(实验页)。
为什么是 Fano?症候译码的代数(F2 上的 3 × 7 校验矩阵)与射影几何 PG(2, 2) 是同一批对象的两件外套:矩阵的 7 个非零列 = 7 个点,列的相关性 = 共线——「三点共线」译成线性代数是「三列相关」。码论、设计论、几何在这里是一门课的三个名字。
握手不止一次:扩展 Golay 码的重量 8 码字给出 S(5, 8, 24)(Witt 设计)——1970 年代最传奇的「码-设计共生体」;今天灯下手机里的 LDPC 码,其校验矩阵的稀疏结构就是一整个图设计。每一代通信标准背后,都站着一个组合设计。
正交表 L9(34):9 行 4 列、3 水平——任意两列的 9 个「水平对」各出现一次——正交拉丁方的表格化直译。田口玄一把它做成工业标准:9 次实验摸清 4 因素 3 水平 = 81 种组合的主效应——省 89% 的实验成本。
为什么「两两平衡」就够:主效应模型下,因素 A 的效应 = 固定其余因素水平分布后的平均差——正交表保证「固定其余」时 A 的各水平出现次数相同,干扰自动消去(拉丁方消干扰的工业放大版)。这就是「均衡」的统计价值:比较才公平。
本章的现实回响:临床试验的分组、A/B 测试的分流、机器学习的网格搜索与正交实验、5G 的 LDPC 与 Polar 码——设计思想是工业界的硬通货。当年柯克曼的十五女生,今天是芯片厂的工艺参数表。
全书三大问在本章对齐成三层阶梯:
第一层:数得清(计数)——有多少个拉丁方?多少条 S(2, 3, 13)?——第一、二、五章的武器(双射、生成函数、Burnside)。第二层:有没有(存在)——正交对何时存在?S(2, 3, v) 何时存在?——第三章的存在性思想 + 整除海关 + Wilson 的体系化。第三层:造得出(构造)——有限域机器、缝合技巧、Hamming 校验位——本章的主业。
三层互喂:计数说明「找的范围」(R(n) = 9408 说 6 阶穷举可行);存在性说明「找不找得到」(Tarry 穷举 6 阶是可行的,因为总数已知有限且不大);构造把对象交到手上( Hamming 码天天在跑)。组合学的完整循环:数 → 判 → 造 → 再数造出来的。
一张对照表(真跑数据见实验页):拉丁方 L(4) = 576(数)、正交对 n ≠ 2, 6(判)、F4 造 AG(2, 3)(造)、Hamming [7,4] 112 种单错全纠(用)。四个动词,一件作品。
四色定理(1976)开先河:计算机辅助证明引来哲学地震;此后组合学全面「装机」——Tarry 早就用手工穷举 6 阶拉丁方(1901,十年功夫),今天的计算机几秒完成。穷举的民主化改变了学科的作息。
几个里程碑:①允许穷举式的定理:非同构 Steiner 系的计数(v = 19 已超 1015 个,靠计算机枚举与分类);② SAT/求解器证明:2016 年 Boolean Pythagorean triples 问题 200 TB 证明——「机器可验、人不可读」成为常态;③纠错码进了每个人的口袋:QR 码的 Reed–Solomon(1960)、Wi-Fi 的 LDPC(1963 发明、1990s 复活)、5G 的 Polar 码——组合设计与编码是数字世界的隐形骨架。
哲学一寸:穷举不是耻辱,是把「存在」问题转化为「计算」问题的合法路径——前提是搜索空间被计数武器先圈住(Tarry 只需查 R(6) = 9408 个标准型 × 剩余自由度)。先计数、后穷举——这本书两半的合流点。
本章工具归成一棵决策树——拿到「安排/纠错」问题先走四问:
第一问:安排什么?两因素公平 → 拉丁方/正交对;两两相遇 → Steiner 系;传错可纠 → 纠错码。第二问:参数过海关吗?bk = vr、λ(v−1) = r(k−1)、汉明界——整除性先行。第三问:用什么原料造?素数幂 → 有限域(仿射/射影平面量产);一般参数 → 缝合(Wilson 路线)。第四问:怎么验货?小规模逐对核对 + 对拍(本章每个真跑都是范本)。
通往综合站:六章的地图将叠成一张总图——计数、担保、结构、对称、构造五条线索在综合站收拢成一件事:把「数不清」的世界变成「说得清」的世界。
例 1(三阶正交对,手搓机器)。用 §6.6 的素数机器 La(i, j) = ai + j (mod 3) 造 n = 3 的正交对:a = 1 给 L1 = (0,1,2 / 1,2,0 / 2,0,1),a = 2 给 L2 = (0,1,2 / 2,0,1 / 1,2,0)。叠加验正交:9 个位置的有序对 (0,0) (1,1) (2,2) / (1,2) (2,0) (0,1) / (2,1) (0,2) (1,0)——9 对恰是 F3 × F3 全体 ✓。q − 1 = 2 是 n = 3 的正交对上限,机器一步造满——真跑同时给出 n = 4(用 F4)的 3 个、n = 5 的 4 个,全部两两正交 ✓。∎
例 2(从仿射平面读出设计)。§6.7 宣称 AG(2, 3) 是一个 S(2, 3, 9)——把 12 条线全部写出核对:斜率 0 的三条 (0,0)(1,0)(2,0) / (0,1)(1,1)(2,1) / (0,2)(1,2)(2,2),斜率 1 与 2 各三条(如 y = x:三点 (0,0)(1,1)(2,2);y = x + 1、y = x + 2),竖线三条。总账:12 条线 × 每条 C(3, 2) = 3 对 = 36 对 = C(9, 2)——9 个点的每对恰被盖一次,不重不漏(真跑逐对核账 ✓)。把每条线的 3 个点看成一区组——BIBD 的两条恒等式当众兑现:b = 12、r = 4,bk = 12 × 3 = 36 = 9 × 4 = vr ✓,λ(v−1) = 1 × 8 = 8 = r(k−1) = 4 × 2 ✓。∎
例 3(编码)。信息 (1, 0, 1, 0)(即 d1 = 1, d2 = 0, d3 = 1, d4 = 0)——p1 = d1 ⊕ d2 ⊕ d4 = 1、p2 = d1 ⊕ d3 ⊕ d4 = 0、p4 = d2 ⊕ d3 ⊕ d4 = 1——码字按位置 1 到 7 排开:1011010。逐位复核:p1 管位置 1,3,5,7 = 1,1,0,0 偶校验 ✓;p2 管 2,3,6,7 = 0,1,1,0 偶 ✓;p4 管 4,5,6,7 = 1,0,1,0 偶 ✓。
例 4(译码)。信道在第 5 位翻了一个错,收到 1011110——三组校验重算:s1 = 1⊕1⊕1⊕0 = 1、s2 = 0⊕1⊕1⊕0 = 0、s4 = 1⊕1⊕1⊕0 = 1——症候 (s4s2s1) = (101)2 = 5:错位地址被自动报出,翻回第 5 位复原 1011010 ✓(真跑:16 个码字 × 7 个错位 = 112 种单错,症候地址每次都精确等于出错位置,复原率 112/112)。校验位放在 2 的幂位置不是巧合:症候的三位二进制读数就是地址。∎
A 组·参数与海关
A1.BIBD(7, 3, 1) 的 b、r 各是多少?
答:bk = vr 且 λ(v−1) = r(k−1):r = 6/2 = 3、b = 21/3 = 7——b = v 的对称设计(Fano 平面)。
A2.S(2, 3, v) 的整除海关查什么?哪些 v ≤ 15 放行?
答:v − 1 被 2 整除(v 奇)且 v(v−1)/2 被 3 整除(v ≢ 2 mod 3)→ v ≡ 1 或 3 (mod 6):7, 9, 13, 15 放行(3 = 平凡单线)。Kirkman:放行即有货。
A3.BIBD(6, 3, 2) 过海关吗?
答:r = 10/2 = 5 ✓、λ(v−1) = 10 = 5 × 2 ✓——放行。但 6 阶上正交对无解的 Tarry 教训在此回响:海关 ≠ 仓库,必要 ≠ 充分。
B 组·构造与验证
B1.用 {0, 1, 3} 差集写出 Fano 的 7 条线,并验证任两点的差恰被覆盖一次。
答:{0,1,3}, {1,2,4}, {2,3,5}, {3,4,6}, {4,5,0}, {5,6,1}, {6,0,2}(mod 7 平移);非零差 1 到 6 各恰出现一次(真跑 ✓)——Singer 差集的「一线盖全差」。
B2.仿射平面 AG(2, 4) 有多少点、多少线、几条平行线过线外一点?
答:16 点、q(q+1) = 20 条线、每线 4 点;平行类 q + 1 = 4 个,每类 4 条——过线外一点恰 1 条平行线(斜率定死)。
B3.为什么 AG(2, q) 一口气给 q − 1 个两两正交的拉丁方?
答:平行类去掉行类、列类后剩 q − 1 个斜率类,每个斜率类给出一个「行 × 列 → 符号」的拉丁方;两条不同斜率的线恰交一点 ⟹ 两方叠加每对符号恰现一次。
A 组·码距与界
A1.码距 d = 5 的码能纠几错、能检几错?
答:纠 ⌊(d−1)/2⌋ = 2 错;检 d − 1 = 4 错(只发现不纠正)。纠与检不可兼得全值:纠 e 错时只能再检 e 错。
A2.长度 6、码距 3 的码最多几个码字?(汉明界估一把)
答:球体积 C(6,0) + C(6,1) = 7,上界 ⌊64/7⌋ = 9。实际最优 A(6, 3) = 8(真跑可达 [6,3,3] 短化码)——界是天花板不是地板。
A3.重复码(3 遍)是完美码吗?
答:n = 3、2 个码字、球体积 C(3,0)+C(3,1) = 4,2 × 4 = 8 = 23 ✓——长度 3 的重复码也是完美码!完美名单比想象更「平民」。
B 组·上手译码
B1.收到 0110110,译出什么?
答:s1 = 0⊕1⊕1⊕0 = 0、s2 = 1⊕1⊕1⊕0 = 1、s4 = 0⊕1⊕1⊕0 = 0——症候 (010)2 = 2,第 2 位翻回得 0010110 = 码字(信息位 1100)。
B2.为什么两个单错可能译错?(d = 3 的极限)
答:两错后落点距错误码字 1、距正确码字 2——最近邻译码把它「纠」到另一个码字:纠错能力是保证不是全知,d = 3 只担保单错情形。
B3.[15, 11] Hamming 码的校验位几个?汉明界取等吗?
答:r = 4 个校验位(位置 1,2,4,8);球体积 C(15,0)+C(15,1) = 16,211 × 16 = 32768 = 215 ✓ 恰取等——家族全体完美。
第六章是一条「从图纸到出厂」的流水线:入口是安排与纠错两类问题,出口是可验证的设计与码。
读图三件事。①有限域是全章的原料车间:正交拉丁方、仿射/射影平面、乃至 Hamming 校验矩阵(F2 上的列向量)都从它取材——域里「除法可行」=「斜率可用」=「直线量产」。②整除海关在入口查票、Wilson 在出口发签证:必要条件筛掉大半,充分性定理担保「过检即有货」。③码与设计在 Fano 处握手: Hamming 重 3 码字的支撑集 = Fano 七线——左岸(设计)与右岸(编码)实际是同一条河。
概念与定理
| 对象 | 陈述 | 钥匙 |
|---|---|---|
| 拉丁方 | 每行每列符号各恰一次 | 两因素公平 |
| 正交对 | 叠加后 n2 个有序对各一次 | 存在 ⟺ n ≠ 2, 6 |
| BIBD(v, k, λ) | 每对点恰同现 λ 区组 | bk = vr、λ(v−1) = r(k−1) |
| Steiner S(2, 3, v) | 三点一线、每对一线 | v ≡ 1, 3 (mod 6) |
| Wilson 定理 | 过海关即有货(v 充分大) | 拉伸、填充、缝合 |
| 有限域 F_q | q 为素数幂,四则完备 | 设计的原材料 |
| 仿射平面 AG(2, q) | q2 点、q(q+1) 线、每线 q 点 | λ = 1 的 BIBD |
| 射影平面 PG(2, q) | q2+q+1 点线、每线 q+1 点 | 加无穷远线 |
| 码距 d | 码字两两最小距离 | d ≥ 2t+1 纠 t 错 |
| 汉明界 | 球体积 × 码字数 ≤ 2n | 取等 = 完美码 |
| Hamming [7,4] | d = 3、症候即地址 | 完美纠错 |
| 码-设计握手 | 重 3 码字 = Fano 七线 | 一门课三名 |
标准账单(真跑全对拍)
| 问题 | 答案 | 核对处 |
|---|---|---|
| 拉丁方数 L(1..4) | 1, 2, 12, 576 | 例题页 · 枚举 |
| 化简数 R(1..5) | 1, 1, 1, 4, 56 | 枚举 ÷ n!(n−1)! |
| MOLS 个数(n = 3/4/5) | 2 / 3 / 4 个 | q − 1 造满 |
| AG(2, 3) | 9 点 12 线 4 平行类 | 36 对恰一线 |
| Fano 七线 | 21 对各恰一线 | 差集 {0,1,3} |
| Hamming [7,4] | d = 3、112 单错全纠 | 症候 = 地址 |
| 重量分布 | 1 + 7 + 7 + 1 | 对称设计 |
| 汉明界 | 8 × 16 = 128 取等 | 完美铺满 |
三个方法论警句
①整除海关先查票,但海关不等于仓库——bk = vr、λ(v−1) = r(k−1)、汉明界都是必要条件;BIBD(6, 3, 2) 过检无货、Euler 猜想栽在「看起来必无解」——必要与充分之间隔着一整个构造理论。②原料决定产线——素数幂阶有有限域,机器开动、设计量产;非素数幂阶(如 6)机器停摆,只能靠缝合——结构的丰俭由数论的性格决定。③验货只需两笔账——设计查「每线 k 点、每对 λ 次」;码查「码距、症候地址」——定义即验货单,所有真跑都按定义逐条核对。
本章与全书五条线
| 线索 | 本章兑现 |
|---|---|
| 计数(一、二章) | L(n) = R(n)·n!·(n−1)!;球体积 C(n, ≤t) |
| 担保存在(三章) | 鸽笼于汉明界;Kirkman/Hanani/Wilson 的存在定理 |
| 结构(四章) | 平面性判据的「非平面最小标本」Fano;欧拉环游之「管」思想于试验安排 |
| 对称(五章) | 同构分类数设计(S(2,3,13) 恰 2 个);F4 的乘法群是 C3 |
| 构造(六章) | 有限域机器 + 缝合 + Hamming 校验位——从「有」到「拿在手上」 |
一句总账:前五章把「数不清」的世界一步步说清(有多少、有没有、什么结构、怎么对称),本章把说清的对象造出来——综合站把六条线拧成一股。
「完美」在数学里不是赞美,是约束——完美到极点的东西,往往少到极点。
完美码的定义冷得像冰:汉明界恰好取等——半径 t 的球把整个空间无缝铺满、一个接收串都不浪费。这样的码存在吗?名单短得惊人:长度 3 的重复码、Hamming 家族 [2r−1, 2r−r−1, 3]、Golay 的 [23, 12, 7],再加上两个平凡的退化情形——1949 年 Golay 之后,再无新丁(1975 年 Tietäväinen 完成分类证明)。纠 2 错还敢称完美的,全宇宙只剩一个 Golay。
稀罕从何而来:取等要求球体积的账分毫不差——球体积 Σ C(n, i) 是一串「不体面」的数,要它恰好整除 2n 还被码字数乘满,相当于要求 2n 在每个 C(n, i) 处都留出精确的余量。这是把「整除海关」推到极致的贪婪——所以完美码聚居在 n = 2r − 1 附近(那里 C(n, i) 的奇偶性最配合)。
设计与码共享这份稀罕:S(2, 3, 7) 同构意义下恰 1 个(Fano);S(5, 8, 24)(Witt 设计)恰 1 个,与扩展 Golay 码共生;大 Witt 设计 24 点、759 个区组——「完美对象」在组合学的每个角落都稀罕。数学家对完美对象的态度因此很特别:不指望它常见,找到一个是缘分,证明不再有是成就。稀罕不是缺陷,是完美收取的门票。
§6.2 宣称 6 阶正交对不存在——本挑战把「为什么偏偏是 6」讲透。
先看机器为什么罢工:素数幂机器 L_a(i, j) = a·i + j 需要域——域里才有「乘 a 不退化」的保证(a·i = a·i′ ⟹ i = i′ 要靠消去律)。6 = 2 × 3 不是素数幂,Z6 有零因子(2 × 3 = 0):取 a = 2 时 L2 的第 0、3 两行完全相同——拉丁方都保不住,遑论正交。补丁方案只剩「缝合」:把 6 = 2 × 3 拆成小块缝合——但 2 阶正交对根本不存在(n = 2 是两大例外之一),2 × 3 的布料缺了经线,缝不出来。
再看穷举为什么可信:Tarry 1901 年的证明是把 6 阶拉丁方按化简标准型枚举——总数 R(6) = 9408 个,再对每个标准型检查与其正交的搭档是否存在(利用行换、列换、符号换把搜索空间再压掉 6!·5! 的因子)。十年人工、一个结论:零。今天的计算机几秒钟复核;Lam、Thiel、Swartz 1989 年的同类穷举(射影平面 10 阶)也走了类似路线并配了独立验证程序——穷举证明的信用来自可复核,不来自优雅。
最后看反转为什么深刻:Euler 猜想「n ≡ 2 (mod 4) 全无解」,Tarry 只证实了最小情形 n = 6;1959 年 Bose–Shrikhande–Parker 用缝合术造出 10、14、18 阶的正交对——例外名单被砍到只剩 {2, 6}。启示有三:①猜想可以局部对、全局错——最小情形的验证不外推;②无解证明(Tarry)与有解构造(BSP)用的是同一批武器(枚举 + 缝合);③「为什么不存在的例外只有两个」至今没有一锤定音的解释性证明——组合学里「存在性地图」的绘制先于「为什么这样画」的理解,这正是 Wilson 定理要接力的地方。
本章最漂亮的握手值得亲手对拍一遍:码论对象(Hamming [7,4])与设计对象(Fano 平面)在同一位点相遇。
实验设计。①按 §6.11 规则编出全部 24 = 16 个码字;②算两两码距取最小 → 验 d = 3;③对每个码字翻第 1 到 7 位(共 112 个接收串)跑症候译码 → 验全部复原且地址恰为出错位;④重量分布 → 验 1 + 7 + 7 + 1;⑤取 7 个重量 3 码字的「1 的位置」集合 → 与 Fano 七线逐条比对 → 验「任两点恰一线」;⑥汉明界 → 验 8 × 16 = 128 取等;⑦F4 乘法结合律、分配律、逆元唯一性 → 43 × 3 = 192 条代数恒等式逐条验。
体检真跑结论。①16 个码字互不相同 ✓;②d = 3 ✓;③112/112 复原,且每个地址(1 到 7)恰被 16 个接收串报出——症候的空间也用得不偏不倚 ✓;④重量账 1, 7, 7, 1 ✓;⑤重 3 支撑集 {(1,2,3), (1,4,5), (1,6,7), (2,4,6), (2,5,7), (3,4,7), (3,5,6)} 与 xor 判线 Fano 七线逐条相等,21 对点各恰一线 ✓;⑥8 × 16 = 128 = 27 ✓;⑦F4 全部 192 条恒等式通过,ω · (ω + 1) = 1 当场核验 ✓。码-设计握手当庭验证:两个世界的对象表完全一致。
《史记》里的田忌赛马是中国古人最早「用结构赢资源」的记录:上中下三马对齐硬拼必输,孙膑重新安排配对——下马对王上马(弃一局)、上马对王中马、中马对王下马——二胜一负赢千金。同样的马,不同的安排,结果反转——这就是「设计」最古老的直觉:胜负不在元素,在配对方案。
从故事到科学隔了两千年:田忌的赢法是「一次性聪明」——换一个对手、换一匹马就失效。十九世纪的农学家面对的是更难的问题:n 个品种、n 块地,土壤肥力的差异混在品种效应里——Fisher 在罗森斯特实验站把「公平比较」做成了体系:随机化(打乱不可控因素)、区组(把可控干扰分层)、拉丁方(两个干扰因素同时抵消)——试验设计三件套。柯克曼的十五女生(1850)比 Fisher 早八十年,已经是纯粹的区组设计题。
均衡的经济学:田忌用「牺牲一局」买「两局必胜」——不追求全胜,追求受控的胜利。拉丁方同理:不消除干扰,而是让干扰均匀分配后相消。田口玄一的正交表把这套思想推到工业级:9 次实验读出 4 因素主效应,省的不是实验次数,是无知——哪些因素重要、哪些可以无视,一张正交表见分晓。
中国古算的再遥望:孙膑的配对直觉若再走两步——把「安排」本身当研究对象、数尽所有安排、问哪种最优——就是组合设计。但《孙子算经》以降的古算停在「解一题」的层面,没有把「方案空间」本身数出来。综合站的年表里,田忌(前 4 世纪)与柯克曼(1850)之间隔着一条「从个案到体系」的鸿沟——跨越它的船票,正是这本书教的计数。
| 情境关键词 | 方法 | 结论 |
|---|---|---|
| 两因素公平安排 | 拉丁方 | 行列各一次 |
| 两套安排互不干扰 | 正交对 | 存在 ⟺ n ≠ 2, 6 |
| 每对恰遇一次 | Steiner S(2, 3, v) | v ≡ 1, 3 (mod 6) |
| BIBD 参数 | 双向计数 | bk = vr、λ(v−1) = r(k−1) |
| 大范围存在性 | Wilson 定理 | 过海关即有货 |
| 素数幂阶构造 | 有限域 F_q | q(q+1) 条线量产 |
| 任两线必交 | 射影平面 | 加无穷远线 |
| 最小射影平面 | Fano (7, 3, 1) | 差集 {0,1,3} |
| 纠 t 个错 | d ≥ 2t + 1 | 球不相交 |
| 码字上限 | 汉明界 | 取等 = 完美码 |
| 纠单错又省带宽 | Hamming [7,4] | 症候 = 地址 |
| 码字的几何 | 重量分布 | 1 + 7 + 7 + 1 |
| 码 → 设计 | 取支撑集 | 重 3 = Fano 七线 |
| 工业试验 | 正交表 L9(34) | 9 次读 4 因素 |
六章读完,最后一件行李是把它们叠起来。综合站(p185 到 198)不再引入新对象,只做四件事:收图、对拍、决战、结账。
收图:综合站第一页给全书概念依赖总图——六章不是六个抽屉,是一张网:鸽笼(三章)喂着 Ramsey(三章)与汉明界(六章);双向计数(一章)撑起 Burnside(五章);生成函数(二章)在第六章隐身但在计数的每一步打工。地图将显示:六条线索其实是一条主脉的六次显影。
对拍:两个综合实验把跨章武器编成一套动作——项链计数的 Burnside 与生成函数对拍(二、五章握手);Hamming [7,4] 信道真跑(六章收官)——公式的意义在两把尺子量出同一个数的那一刻落地。
决战:终极挑战是 Ramsey 数 R(4, 4)——三章留下的问题在综合站摆开战场:Paley 图 17 点、C(17, 4) = 2380 个四元组逐个核验——用计算机的「穷举合法化」给本书画上句号,也留下下一步:R(5, 5) 至今无人知道确切答案。
结账:全书小结与终极速查表把 198 页压成两张表。下一站:综合站——数数的人最后要数一数自己走了多远。
198 页走到这里,新对象一个都不再引入。综合站只做四件事:收图——把六章叠成一张总图(p186);对拍——两个综合实验让跨章武器同台(p191–192);决战——终极挑战 Ramsey 数 R(4, 4),用本章的「穷举合法化」给全书画句号(p193);结账——综合习题、全书小结与终极速查表(p194–198)。
为什么值得收一次图:学习是把书读厚——每一章都添武器、添人物、添警句;理解是把书读薄——六条线索其实是同一条主脉的六次显影:把「数不清」的世界变成「说得清」的世界。第一章的双向计数撑起第五章的 Burnside;第三章的鸽笼喂着 Ramsey 与汉明界;第二章的生成函数在计数的每一步打工;第四章的平面性判据在 Fano 处与第六章握手。
一件收尾小事:综合习题(p194)刻意全部「跨章」——每道题都要同时动用两章以上的武器。如果能在不看评讲的前提下做完大半,这本 198 页就真正属于了。出发。
六章五线一网收。读图从左往右:原料(数与双射)→ 引擎(计数与担保)→ 结构(图与群)→ 造物(设计与码)。
三条主动脉:①计数脉:双射 → 容斥 → 生成函数 → Burnside——「有多少」从手数升级到机器算;②担保脉:鸽笼 → 平均 → Ramsey → 汉明界——「必然有」从直觉升级到定量;③构造脉:图 → 群 → 有限域 → 设计与码——「造得出」从个案升级到产线。三脉在 R(4, 4) 处会师:计数圈定战场、担保断言存在、构造(Paley 图)交出货品。
古代:约前 4 世纪,孙膑以「下驷对上驷」赢田忌赛马——用安排赢资源的最早记录;约 1 世纪,《孙子算经》「物不知数」——同余与 中国剩余;约 5 世纪《张丘建算经》百鸡问题——不定方程的早期组合味。
近代前夜:1202 年斐波那契《计算之书》兔子问题——递推的教科书案例;1666 年莱布尼茨《论组合术》——「组合」第一次成为学科名;1736 年欧拉解柯尼斯堡七桥——图论诞生;1782 年欧拉研究正交拉丁方(36 军官问题的前奏,1779 年正式提出)。
十九世纪:1847 年柯克曼证明 S(2, 3, v) 的存在性、1850 年十五女生问题;1852 年德·摩根信件记下四色问题、同年斯坦纳系统化三元系;1879 年肯普的四色「证明」发表(十一年后被识破——错误的证明催出了染色理论的真工具);1897 年 Burnside《有限阶群论》出版——群论工具集齐,只待 20 世纪点算。
二十世纪:1912 年 Hardy–Ramanujan 分拆渐近;1928 年 Ramsey 论文发表(1930 年离世,定理不朽);1937 年 Pólya 计数定理;1947 年 Hamming 纠错码;1948 年 Shannon 信息论;1949 年 Golay 码;1959–60 年 Bose–Shrikhande–Parker 破 Euler 猜想;1960 年 Hanani、1972–75 年 Wilson 完成设计存在性体系;1976 年 Appel–Haken 计算机证明四色定理;1989 年 Lam 团队证实 10 阶射影平面不存在;1993 年 McKay–Radziszowski 定死 R(4, 4) = 18;2005 年 McKay–Wanless 给出拉丁方计数渐近;2016 年 Boolean Pythagorean triples 问题 200 TB 证明——从孙膑到 200 TB,同一个问题:怎么安排,才能说得清。
欧拉(Leonhard Euler, 1707–1783):七桥开创图论,36 军官开创正交拉丁方,多面体公式开启拓扑计数——一个人给本书三章供了火种。他晚年双目失明,靠心算完成大量工作。
柯克曼(Thomas Kirkman, 1806–1895):英国牧师,教区事务之余证明 Steiner 三元系存在性(1847)——「十五女生」让他出圈,存在性定理让他不朽。斯坦纳(Jakob Steiner, 1796–1863):瑞士农家子,29 岁才入学,几何——三元系冠了他的名(系统化出自他 1853 年论文)。
Ramsey(Frank Ramsey, 1903–1930):剑桥哲学家、数学家、经济学家,26 岁病逝——一篇逻辑学论文里藏了让全数学头疼的定理。「数学的野性」是他说组合结构无处不在的代名词。
Pólya(1887–1985)与 Burnside(1852–1927):第五章双主角——一位教人解题、一位把对称变成账本(引理其实 Burnside 之前已有 Frobenius 等人用过——冠名常是历史的误会,账本本身不误)。
Hamming(1915–1998)与 Shannon(1916–2001):贝尔实验室的一对同事——Shannon 给「信息」以数学、Hamming 给「纠错」以构造。Hamming 那句名言值得每个学数学的人抄在扉页:「当知道问题无解时去算它,和不知道无解时去算它,是两种完全不同的心情。」——他的纠错码正诞生于「愤怒」:周末无人值守的机器把好数据连同错误一起扔掉。
Wilson(Richard Wilson, 1945– ):把设计的存在性从集邮变成体系;Erdős(1913–1996):一生合作者逾五百人,把「随机方法」带进组合学——本书第三章的 Ramsey 上界抽样、第六章的穷举合法化,都住着他的遗产。
全书方法压成一棵树。拿到问题先走四问——每问的叶子上挂着所属章节。
读树三件事:①第一问是「什么算同一个」——对称问题先定群,再谈计数(第五章);这一问漏了,后面全错。②「有没有」常比「有多少」便宜——先查海关(整除性、鸽笼、汉明界),过不了检的问题直接出局,省下全部力气。③构造是最后一步也是验证的第一步——造出来后按定义逐条核对(本章每个真跑都是范本),「造」与「验」是同一枚硬币。
数与计数的标准账
| 对象 | 小值账单 | 出处 |
|---|---|---|
| Bell 数 B(n) | 1, 2, 5, 15, 52, 203, 877 | 第二章 |
| 分拆数 p(n) | 1, 2, 3, 5, 7, 11, 15, 22 | 第二章 |
| Catalan C(n) | 1, 2, 5, 14, 42, 132, 429 | 第二章 |
| 错排 D(n) | 0, 1, 2, 9, 44, 265 | 第二章 |
| 项链二色(Cn) | 2, 3, 4, 6, 8, 14, …, 108 | 第五章 |
| 拉丁方 L(n) | 1, 2, 12, 576 | 第六章 |
结构与设计的标准参数
| 对象 | 参数 | 关键数 |
|---|---|---|
| Petersen 图 | 10 点 15 棱,3 正则 | 色数 3 · |Aut| = 120 |
| Fano 平面 | (7, 3, 1) 对称 BIBD | 同构 1 个 · 差集 {0,1,3} |
| 仿射平面 AG(2, 3) | 9 点 12 线 | S(2, 3, 9) · 4 平行类 |
| Hamming [7,4] | [n, k, d] = [7, 4, 3] | 16 码字 · 完美 · 重量 1+7+7+1 |
| Golay [23,12,7] | 完美纠 3 错 | Witt 设计 S(5, 8, 24) 共生 |
| Ramsey 数 | R(3,3) = 6 · R(3,4) = 9 · R(4,4) = 18 | 第三章 + p193 |
记忆口诀:账单背小值、参数记结构——数是死的,结构是活的;考场上忘了大值可以现推(生成函数与 Burnside 都是推值机器),结构推不出来,只能靠平时攒。
第二章的公式机器(Burnside/Pólya)与第一章的笨办法(全枚举 + 最小代表归堆)在项链问题上正面对拍——两把尺子量同一个数。
实验设计:①n = 1 到 12、k = 2:Burnside 公式 (1/n)Σ 2gcd(n, j) 对拍 2n 全枚举归堆(n = 12 要归 4096 个染色);②同题加反射(Dn);③分账对拍:n = 6、k = 2 时 Pólya 循环指标读系数 vs 归堆账单;④k = 3 抽查 n = 4、5(公式 34 类推)。
体检真跑结论:①公式与归堆 n = 1 到 12 逐项一致,n = 11、12 给 188、352——4096 个染色的归堆与一个 12 项的平均,殊途同归;②手镯在 n = 6 处分家(14 → 13)再证;③n = 6 分账「恰 2 红」三种(相邻、隔一、相对)与归堆账单一致 ✓;④k = 3、n = 4 给 15 ✓。笨办法是公式的验钞机,公式是笨办法的望远镜——n = 20 时 220 归堆已近百万次,而公式依旧一行。
第六章的 Hamming 码放到一个模拟的二进制对称信道(BSC:每位以概率 p 翻转)里跑 10 万次传输,与「不编码裸传 4 位」对拍——冗余买来了多少可靠?
实验设计:①p = 0.01:裸传 4 位信息(字错率理论值 1 − (1−p)4)vs Hamming 编码传输(码距 3,单错全纠——字错率理论值 = 出现 ≥ 2 错的概率);②各模拟 100 000 次统计实测字错率,对拍理论值;③p = 0.05、0.10 重跑;④把 112 种单错逐一注入验证纠错(第六章实验的复跑)。
体检真跑结论:①p = 0.01:裸传字错率理论 3.94%、模拟 4.02%;Hamming 理论 0.20%、模拟 0.21%——7 位买来约 20 倍可靠;②p = 0.05:裸传 18.59%、Hamming 4.47%(理论 4.44%);③p = 0.10:裸传 34.28%、Hamming 15.03%(理论 14.97%)——噪声越大冗余的相对收益越小(20 倍缩到 2 倍多),但错误率砍半的改善一直稳稳在;④112 单错注入全数复原 ✓。模拟值围着理论值微微抖动——大数定律在为汉明界背书。
第三章的悬念终章:R(4, 4) = 18——17 人的聚会可以双色染色避开单色 K4,18 人必出。下界用构造(Paley 图),上界用计算机(1993)——本挑战亲手验下界。
Paley 图 P(17):顶点 Z17,两点连线 ⟺ 差是 mod 17 的二次剩余。二次剩余集合 {1, 2, 4, 8, 9, 13, 15, 16}(真跑:平方表 12 到 82 收集)——17 点、68 条边、8 正则。这个图的神奇在于自补:非剩余恰是补图的差集,图与补图同构——所以「无红 K4」与「无蓝 K4」只需验一次。
真跑枚举:C(17, 4) = 2380 个四元组,逐组检查——无一构成团(6 条边全在)、无一构成独立集(6 条边全无),每个四元组的内边数都在 1 到 5 之间。于是 R(4, 4) ≥ 18 ✓。而上界 R(4, 4) ≤ 18 需要穷举全部 2C(17,2) = 2136 种染色的结构性剪枝——McKay 与 Radziszowski 1993 年完成,那是「合法穷举」的巅峰之作;时至今日 R(5, 5) 仍不知道确切值(43 ≤ R(5,5) ≤ 48)——疆界之外,留给下一位。
这一仗用到的全书武器:二次剩余表(第二章的数账)、自补性(第五章的对称)、2380 枚举与剪枝(第一、三章的计数与担保)、构造验货(第六章的真跑)——一张 Paley 图,四脉归一。
A 组·跨章对拍
A1.证明:Catalan 恒等式 C(n) = C(n−1) × (4n − 2)/(n + 1)——用第二章的递推还是第一章的双射?两种都写。
答:递推两边代卷积式化简即得;双射版:把 n + 1 对括号的合法序列与「中间某处降而复升」的结构对应——两条路殊途同归,正是「计数 = 结构」的实例。
A2.六人聚会(R(3,3) = 6)与 Hamming [7,4] 有什么共同的「担保语法」?
答:都是「抽屉 + 界」:前者鸽笼担保单色三角必出,后者汉明界担保 7 位纠 1 错必可——界就是担保的定量形式。
A3.用 Burnside 数五珠三色项链(k = 3、n = 5)。
答:(35 + 4 × 3)/5 = (243 + 12)/5 = 51。
B 组·构造与验证
B1.AG(2, 4) 里能不能找出 S(3, 4, 8)?——提示:换对象。
答:S(3, 4, 8) 不住在 AG(2, 4)(那是 16 点),住在 Hamming [8,4,4] 扩展码的重 4 码字里——先数后找,别在错误的点集里大海捞针。
B2.Petersen 图为什么不能「一笔画」?它的边色数为什么撞上 Vizing 界的天花板?
答:每点度 3 为奇,欧拉环游要求连通且度全偶——不满足(第四章);Vizing 给 χ′ ∈ {Δ, Δ + 1} = {3, 4},而 Petersen 的 χ′ = 4——恰好是那个 +1(点色数 3 是另一回事,别混淆点染色与边染色)。
B3.给出 R(3, 3) ≥ 5 与 R(3, 3) ≤ 6 的完整论证——下界用五边形圈 C5,上界用鸽笼。
答:C5 及其补(同构于 C5)都无三角 → 5 人反例;6 人取一点,5 条边中鸽笼 3 条同色,该三点两两连线再鸽笼一次——必出单色三角。
A1 的两把钥匙:递推路 30 秒收工;双射路慢但「知道为什么」——考场用代数,学术用双射。Catalan 增率 (4n−2)/(n+1) → 4,与第二章的 C(n) ~ 4n/(n3/2√π) 呼应。A2 是本题的灵魂:全书两大担保器(鸽笼、界)其实是同一件事的两面——「平均之后必有极端」;Ramsey 定理把它推到「任意大结构必有秩序」,汉明界把它算成「冗余的市场价格」。
A3 的易错点:忘了除以 n 或忘了素数 n 的反射全同型——五珠的 5 个反射各 1122 → 3,总账 (243 + 4 × 3)/5 = 51,整除是 Burnside 的免费验钞。
B1 的教训:「先数后找」——S(3, 4, 8) 的参数海关(λ(3) = 7·r? → r = 3·7/(4−1) = 7、b = 8·7/4 = 14)先放行,再从扩展 Hamming 码取 14 个重 4 码字——设计不住在想找的地方,住在参数允许的地方。B2 的教训:Petersen 是「反例之王」——边色 4(Vizing 界的 +1 反例)、不是 Hamilton 图、不是欧拉图——每个「不」背后都有一条精确定理,背结构就是在背定理。B3 的示范价值:下界靠构造、上界靠鸽笼——Ramsey 数的每一根疆界桩都是这对组合打的,R(4, 4) 的 Paley 图只是它的放大版。
总评:六道题没有一道单章能解——这正是综合站的本意:武器不分章,问题不分科。
六章各一句
| 章 | 一句话 | 镇章之宝 |
|---|---|---|
| 第一章 双射与计数 | 数不清时,找一个「一一对应」 | 双向计数 |
| 第二章 生成函数与递推 | 把数列装进多项式 | Catalan / 分拆 |
| 第三章 存在与担保 | 鸽笼一响,秩序必现 | Ramsey 定理 |
| 第四章 图论 | 点线是万物的骨架 | Euler 环游 · 平面性 |
| 第五章 群作用与计数 | 先说清「什么算同一个」 | Burnside / Pólya |
| 第六章 设计与编码 | 从「有」到「拿在手上」 | Steiner 系 · Hamming 码 |
全书三条铁律
①不重不漏——双射、容斥、区组设计,全是「每个对象恰数一次」的不同化身;②先问什么算同一个——对称不定,计数白费;③定义即验货单——每章的真跑都按定义逐条核对,数学的诚实是可执行的。
全书三大担保器:鸽笼(平均出极端)、界(汉明界 / 举界)、单调与紧性(Ramsey 归纳)——「必然」从哪里来:从平均、从上限、从递归。
五条线,一张网
计数线(一、二、五章):从双射到生成函数到 Burnside——「有多少」的答案越来越自动。担保线(三章):从鸽笼到 Ramsey——「必然有」的尺度越来越大。结构线(四章):图是万物的骨架,平面性是最深的不可能。对称线(五章):群是「同一个」的严格化身,商掉对称是计数的第一等操作。构造线(六章):有限域是原料车间,设计与码是成品——数学不只说「有」,还能交货。
方法论十条(全书警句合集)
①对称想不清,先写群;②总账必整除——不整除就是错账;③先海关后仓库——必要条件筛题;④界就是担保;⑤笨办法是公式的验钞机;⑥构造与验证是同一枚硬币;⑦「数不清」先问「什么算同一个」;⑧反例之王常在(Petersen、6 阶正交对)——猜想最小情形不外推;⑨穷举合法化的前提是计数先行;⑩每个「不可能」都是一条精确定理(K5、K3,3、6 军官、R(3, 3, 3) 的边界)。
写给合上书的:198 页没有教完组合学——连它的地图都没画完(R(5, 5) 还是悬案,Steiner 系的分类到 2015 年才由 Keevash 关上最后的大门)。但已经拿到了三样东西:一套武器、一张地图的边角、以及「数得清」的自信。下一门课(无论它是数论、代数还是算法)会在某个转角喊去数一个新东西——那时会想起:先问什么算同一个,再数。
| 情境关键词 | 方法 | 出处 |
|---|---|---|
| 数不清 → 找对应 | 双射 / 双向计数 | 第一章 |
| 至少一个 → 鸽笼 | 平均 / 抽屉 | 第三章 |
| 排斥重叠 | 容斥 | 第二章 |
| 递推到通项 | 生成函数 | 第二章 |
| 括号 / 树形结构 | Catalan 数 | 第二章 |
| 点线关系 | Euler 公式 / 度数账 | 第四章 |
| 一笔画 / 走遍 | 奇点计数 | 第四章 |
| 平面画不下 | K5 / K3,3 判据 | 第四章 |
| 转一转算同一个 | 群作用 / 轨道 | 第五章 |
| 数轨道 | Burnside 平均 | 第五章 |
| 分账读系数 | Pólya 循环指标 | 第五章 |
| 每对恰遇一次 | Steiner 系(海关 mod 6) | 第六章 |
| 两因素公平 | 拉丁方 / 正交对(n ≠ 2, 6) | 第六章 |
| 传错要纠 | d ≥ 2t + 1 / 汉明界 | 第六章 |
| 纠单错省带宽 | Hamming [7,4],症候即地址 | 第六章 |
| 单色结构必出 | Ramsey(R(3,3) = 6、R(4,4) = 18) | 第三章 · p193 |
| 错账自查 | 总账整除 + 小规模归堆 | 全书 |