← 返回 资料库 › 竞赛数学与解题 › 解题策略 竞赛数学与解题
分类讨论与极端原理 通过拆分成完备的情形,或考察一个极端(最大/最小)元素来解决问题。
直观 把看似无从下手的问题拆成可处理的情形 设想一场 5 5 5 名棋手参加的循环赛,不允许平局:每两人恰好交手一次,总有一方获胜。是否总能把棋手排成某个顺序 v 1 , v 2 , … , v 5 v_1, v_2, \dots, v_5 v 1 , v 2 , … , v 5 ,使每个人都恰好战胜排在他后面的那个人?逐一检查全部 5 ! = 120 5! = 120 5 ! = 120 种排列既浪费又像是取决于具体的胜负关系。相反,只需从棋手之间已经存在的最长获胜链 中挑出——也就是最极端 的一条链——一个简短的论证就能说明它无法再延长,从而迫使它必须已经包含了所有人。
5 5 5 名棋手的对战图:每条箭头由胜者指向负者。高亮的路径是现有的最长获胜链;极端原理表明它必定已经经过了每一位棋手。大学 两种互补策略:穷举分类与极端原理 定义: 穷举分类讨论与极端原理的定义
穷举分类讨论 把所有可能性组成的集合 S S S 划分成有限个两两不相交的情形 S 1 , … , S k S_1,\dots,S_k S 1 , … , S k ,其并集为整个 S S S ,再在每个情形内分别验证命题;由于没有遗漏任何可能性,也没有重复计数,在每种情形下证明命题即证明了命题对整个 S S S 成立。极端原理 则相反,着眼于一个有限(或良序)集合中就某个量而言最极端的单个元素——最大、最小或最长者——并利用该元素无法再被改进这一事实,推出矛盾或给出直接的构造。
S = S 1 ∪ S 2 ∪ ⋯ ∪ S k , S i ∩ S j = ∅ for i ≠ j S = S_1 \cup S_2 \cup \cdots \cup S_k,\quad S_i \cap S_j = \varnothing \text{ for } i \neq j S = S 1 ∪ S 2 ∪ ⋯ ∪ S k , S i ∩ S j = ∅ for i = j 这里 S S S 是所研究的全部可能性构成的整体,k k k 是情形的个数,两个条件分别说明这些情形是穷尽的 (它们的并集恢复出整个 S S S ,因此没有遗漏)和两两互斥的 (两两交集为空,因此没有重复计数)。
∅ ≠ A ⊆ Z ≥ 0 ⟹ ∃ m ∈ A with m ≤ a for all a ∈ A \varnothing \neq A \subseteq \mathbb{Z}_{\ge 0} \implies \exists\, m \in A \text{ with } m \le a \text{ for all } a \in A ∅ = A ⊆ Z ≥ 0 ⟹ ∃ m ∈ A with m ≤ a for all a ∈ A 这条良序原理 正是让极端原理在整数上变得严谨的原因:任意非空的非负整数集合 A A A 都存在最小元 m m m ,因此“最小反例”或“最短路径”这类说法绝非空谈——它们的存在是有保证的;由对称性,只要 A A A 另外是有限的或有上界,同样的结论对最大元也成立。
M = max x ∈ A f ( x ) ⟹ f ( x ) ≤ M for every x ∈ A M = \max_{x \in A} f(x) \implies f(x) \le M \text{ for every } x \in A M = x ∈ A max f ( x ) ⟹ f ( x ) ≤ M for every x ∈ A 这不过是最大值定义的重述——但它正是每一个极端原理证明的引擎:一旦 M M M 被固定为最大值,任何 竞争者 x x x 都必须满足 f ( x ) ≤ M f(x) \le M f ( x ) ≤ M ,其中也包括证明专门巧妙构造出来的竞争者,用以在 M M M 其实还不够极端时暴露矛盾。
分类讨论与极端原理对照 方法 核心思想 典型用途 穷举分类 把所有可能性划分成有限个互不相交的情形并逐一验证 模 n n n 的奇偶/余数论证,小规模有限枚举 极端原理(最大值) 取使某个量取最大值的元素,并说明它不能被严格改进 图中的最长路径、距离最远的两点、最大反例 极端原理(最小值) 取使某个量取最小值的元素,并说明它不能被严格超越 点到直线的最小距离(西尔维斯特—加莱),最小反例(无穷递降) Z ≥ 0 \mathbb{Z}_{\ge 0} Z ≥ 0 的良序性保证任意非空非负整数集合都存在最小元 使“极端元素”严谨化;是无穷递降法的基础
大学 关键定理:通过最小距离得到的寻常直线,以及锦标赛中的哈密顿路径 若平面上 n ≥ 3 n \ge 3 n ≥ 3 个点并非全部共线,则存在一条恰好经过其中 2 2 2 个点的直线(称为寻常直线 )。
为什么成立? 在有限多个(点,过两点的直线)且该点不在该直线上的组合中,选出距离严格最小的一组;若这条最近的直线上还有第三个点,几何论证会构造出一组更近的组合,这与最小性矛盾。
证明 第一步(设置极端选择)。 设 P P P 为给定的有限点集,共有 n ≥ 3 n \ge 3 n ≥ 3 个点且并非全部共线。考虑由所有满足下述条件的组 ( Q , ℓ ) (Q, \ell) ( Q , ℓ ) 组成的有限集合:ℓ \ell ℓ 是过 P P P 中至少 2 2 2 个点的直线,且 Q ∈ P Q \in P Q ∈ P 是不在 ℓ \ell ℓ 上的点。由于 P P P 并非全部共线,该集合非空,又因其有限,由极端原理可以选出使点到直线的距离 d ( Q 0 , ℓ 0 ) d(Q_0, \ell_0) d ( Q 0 , ℓ 0 ) 最小的一组 ( Q 0 , ℓ 0 ) (Q_0, \ell_0) ( Q 0 , ℓ 0 ) 。
第二步(假设矛盾)。 为得出矛盾,假设 ℓ 0 \ell_0 ℓ 0 上至少有 3 3 3 个 P P P 中的点。设 F F F 为从 Q 0 Q_0 Q 0 向 ℓ 0 \ell_0 ℓ 0 所作垂线的垂足。由于 ℓ 0 \ell_0 ℓ 0 上有 ≥ 3 \ge 3 ≥ 3 个 P P P 中的点,而它们只能位于沿 ℓ 0 \ell_0 ℓ 0 从 F F F 出发的至多 2 2 2 条射线上,由鸽笼原理可知其中有两点 B B B 与 C C C 位于同一条射线上,且 B B B 位于 F F F 与 C C C 之间(允许 B = F B = F B = F )。
第三步(通过相似三角形构造更近的一组)。 从 B B B 向直线 Q 0 C Q_0C Q 0 C 作垂线,垂足为 G G G 。直角三角形 △ B G C \triangle BGC △ B GC 与 △ Q 0 F C \triangle Q_0FC △ Q 0 F C 在 C C C 处共享同一角,因而相似,由此得到 B G Q 0 F = B C Q 0 C \dfrac{BG}{Q_0F} = \dfrac{BC}{Q_0C} Q 0 F B G = Q 0 C B C 。由于 B B B 位于 F F F 与 C C C 之间,有 B C ≤ F C BC \le FC B C ≤ F C ;又因 △ Q 0 F C \triangle Q_0FC △ Q 0 F C 在 F F F 处为直角,其斜边满足 F C < Q 0 C FC < Q_0C F C < Q 0 C ;综合两者得 B C < Q 0 C BC < Q_0C B C < Q 0 C ,从而 B G < Q 0 F = d ( Q 0 , ℓ 0 ) BG < Q_0F = d(Q_0, \ell_0) B G < Q 0 F = d ( Q 0 , ℓ 0 ) 。
第四步(矛盾)。 直线 Q 0 C Q_0C Q 0 C 经过 P P P 中的 2 2 2 个点(即 Q 0 Q_0 Q 0 与 C C C ),而 B B B 是不在其上的 P P P 中的点,因此 ( B , Q 0 C ) (B, Q_0C) ( B , Q 0 C ) 是我们有限集合中的一组合法组合,且满足 d ( B , Q 0 C ) = B G < d ( Q 0 , ℓ 0 ) d(B, Q_0C) = BG < d(Q_0, \ell_0) d ( B , Q 0 C ) = B G < d ( Q 0 , ℓ 0 ) ,这与 ( Q 0 , ℓ 0 ) (Q_0, \ell_0) ( Q 0 , ℓ 0 ) 的最小性矛盾。
第五步(结论)。 该矛盾表明 ℓ 0 \ell_0 ℓ 0 不可能包含 3 3 3 个或更多 P P P 中的点;既然它被选定为至少包含 2 2 2 个点,那么它恰好包含 2 2 2 个点,故 ℓ 0 \ell_0 ℓ 0 即为所求的寻常直线。
在任意 n n n 个顶点上的锦标赛(对每一对不同顶点 u , v u, v u , v ,弧 u → v u \to v u → v 或 v → u v \to u v → u 恰有一条存在的完全有向图)中,都存在恰好经过每个顶点一次的哈密顿路径 v 1 → v 2 → ⋯ → v n v_1 \to v_2 \to \cdots \to v_n v 1 → v 2 → ⋯ → v n 。
为什么成立? 取一条长度最大的有向路径;若存在某个被遗漏的顶点,锦标赛的性质(每一对都存在一条有向边)就能让我们在某一端延长该路径,或把缺失的顶点插入中间,这与最大性矛盾。
证明 第一步(极端选择)。 在锦标赛的所有有向路径中,选出顶点数 k k k 最大的一条 P : v 1 → v 2 → ⋯ → v k P: v_1 \to v_2 \to \cdots \to v_k P : v 1 → v 2 → ⋯ → v k ;由于顶点只有有限多个,这个最大值必定存在。为得出矛盾,假设 k < n k < n k < n ,并设 u u u 为不在 P P P 上的一个顶点。
第二步(在两端分类讨论)。 由于锦标赛中 u → v 1 u \to v_1 u → v 1 与 v 1 → u v_1 \to u v 1 → u 恰有一个成立:若 u → v 1 u \to v_1 u → v 1 成立,把 u u u 加到最前面就得到更长的路径 u → v 1 → ⋯ → v k u \to v_1 \to \cdots \to v_k u → v 1 → ⋯ → v k ,与 k k k 的最大性矛盾;因此 v 1 → u v_1 \to u v 1 → u 成立。同理,v k → u v_k \to u v k → u 与 u → v k u \to v_k u → v k 恰有一个成立:若 v k → u v_k \to u v k → u 成立,把 u u u 加到最后面就得到更长的路径,与最大性矛盾;因此 u → v k u \to v_k u → v k 成立。
第三步(确定插入位置)。 现在已知 v 1 → u v_1 \to u v 1 → u 与 u → v k u \to v_k u → v k 。设 j j j 为 { 1 , … , k − 1 } \{1, \dots, k-1\} { 1 , … , k − 1 } 中使 v j → u v_j \to u v j → u 成立的最大下标;由于 j = 1 j = 1 j = 1 满足条件,该下标集合非空,故由极端原理 j j j 存在。由 j j j 的最大性,弧 v j + 1 → u v_{j+1} \to u v j + 1 → u 不成立,于是锦标赛的性质迫使 u → v j + 1 u \to v_{j+1} u → v j + 1 成立。
第四步(通过插入得到矛盾)。 结合 v j → u v_j \to u v j → u 与 u → v j + 1 u \to v_{j+1} u → v j + 1 ,把 u u u 插入 v j v_j v j 与 v j + 1 v_{j+1} v j + 1 之间,得到路径 v 1 → ⋯ → v j → u → v j + 1 → ⋯ → v k v_1 \to \cdots \to v_j \to u \to v_{j+1} \to \cdots \to v_k v 1 → ⋯ → v j → u → v j + 1 → ⋯ → v k ,它有 k + 1 k + 1 k + 1 个顶点,与 k k k 的最大性矛盾。
第五步(结论)。 这样的顶点 u u u 不可能存在,故 k = n k = n k = n ,P P P 即为一条哈密顿路径。
进阶 实际应用与典型例题 在体育数据分析与排名算法 中,雷代定理保证任意循环赛的结果——即便出现像 A A A 胜 B B B 、B B B 胜 C C C 、C C C 胜 A A A 这样的循环爆冷——总能被排成至少一种线性名次,使每位选手都战胜排在其后的下一位,这恰好就是“插入落单者”式排期启发法所产生的顺序。在代数复杂性理论 中,西尔维斯特—加莱定理的定量版本限制了两两满足受限共线条件的线性型个数,是证明计算线性型幂之和的算术电路下界的关键工具。在算法设计与程序验证 中,以“取最小反例”形式出现的极端原理,正是贪心算法与交换算法的无穷递降正确性证明背后的标准引擎。
例题: 通过分类讨论枚举 x 2 − y 2 = 45 x^2 - y^2 = 45 x 2 − y 2 = 45 的所有解
求所有满足 x 2 − y 2 = 45 x^2 - y^2 = 45 x 2 − y 2 = 45 且 x > y x > y x > y 的正整数对 ( x , y ) (x, y) ( x , y ) 。
解答 分解左边:x 2 − y 2 = ( x − y ) ( x + y ) = 45 x^2 - y^2 = (x - y)(x + y) = 45 x 2 − y 2 = ( x − y ) ( x + y ) = 45 。由于 x , y x, y x , y 是满足 x > y x > y x > y 的正整数,d 1 = x − y d_1 = x - y d 1 = x − y 与 d 2 = x + y d_2 = x + y d 2 = x + y 都是 45 45 45 的正因数,且 d 1 < d 2 d_1 < d_2 d 1 < d 2 、d 1 d 2 = 45 d_1 d_2 = 45 d 1 d 2 = 45 ;二者还必须奇偶性相同(因为 d 1 + d 2 = 2 x d_1 + d_2 = 2x d 1 + d 2 = 2 x 是偶数),而这里 45 45 45 是奇数,故 45 45 45 的每个因数都是奇数,这一条件自动满足。
45 = 3 2 × 5 45 = 3^2 \times 5 45 = 3 2 × 5 的正因数为 1 , 3 , 5 , 9 , 15 , 45 1, 3, 5, 9, 15, 45 1 , 3 , 5 , 9 , 15 , 45 ,把每个小于 45 \sqrt{45} 45 的因数与其对应的较大因数配对,恰好得到 3 3 3 种穷举的情形:( d 1 , d 2 ) ∈ { ( 1 , 45 ) , ( 3 , 15 ) , ( 5 , 9 ) } (d_1, d_2) \in \{(1, 45), (3, 15), (5, 9)\} ( d 1 , d 2 ) ∈ {( 1 , 45 ) , ( 3 , 15 ) , ( 5 , 9 )} 。由于 45 45 45 的每个因数恰好出现在这三对中的一对里,不存在其他情形。
对每种情形解 x = d 1 + d 2 2 x = \dfrac{d_1 + d_2}{2} x = 2 d 1 + d 2 与 y = d 2 − d 1 2 y = \dfrac{d_2 - d_1}{2} y = 2 d 2 − d 1 :( 1 , 45 ) (1, 45) ( 1 , 45 ) 给出 ( x , y ) = ( 23 , 22 ) (x, y) = (23, 22) ( x , y ) = ( 23 , 22 ) ;( 3 , 15 ) (3, 15) ( 3 , 15 ) 给出 ( x , y ) = ( 9 , 6 ) (x, y) = (9, 6) ( x , y ) = ( 9 , 6 ) ;( 5 , 9 ) (5, 9) ( 5 , 9 ) 给出 ( x , y ) = ( 7 , 2 ) (x, y) = (7, 2) ( x , y ) = ( 7 , 2 ) 。穷举检验了所有情形后,这 3 3 3 组即为完整解集。
例题: 用极端原理(无穷递降)证明 2 \sqrt{2} 2 是无理数
不使用通常的最简分数论证,而用极端(良序)原理证明 2 \sqrt{2} 2 是无理数。
解答 为得出矛盾,假设 2 \sqrt{2} 2 是有理数。于是集合 A = { q ∈ Z > 0 : q 2 ∈ Z > 0 } A = \{\, q \in \mathbb{Z}_{>0} : q\sqrt{2} \in \mathbb{Z}_{>0} \,\} A = { q ∈ Z > 0 : q 2 ∈ Z > 0 } 非空,由良序原理它存在最小元 q 0 q_0 q 0 ;令 p 0 = q 0 2 ∈ Z > 0 p_0 = q_0\sqrt{2} \in \mathbb{Z}_{>0} p 0 = q 0 2 ∈ Z > 0 。
由于 1 < 2 < 2 1 < \sqrt{2} < 2 1 < 2 < 2 ,两边乘以 q 0 q_0 q 0 得 q 0 < p 0 < 2 q 0 q_0 < p_0 < 2q_0 q 0 < p 0 < 2 q 0 。令 q 1 = p 0 − q 0 q_1 = p_0 - q_0 q 1 = p 0 − q 0 和 p 1 = 2 q 0 − p 0 p_1 = 2q_0 - p_0 p 1 = 2 q 0 − p 0 ;由上述两个不等式可得 0 < q 1 < q 0 0 < q_1 < q_0 0 < q 1 < q 0 与 0 < p 1 < q 0 0 < p_1 < q_0 0 < p 1 < q 0 ,故 q 1 q_1 q 1 是严格小于 q 0 q_0 q 0 的正整数。
计算 q 1 2 = ( p 0 − q 0 ) 2 = p 0 2 − q 0 2 = p 0 2 − p 0 q_1\sqrt{2} = (p_0 - q_0)\sqrt{2} = p_0\sqrt{2} - q_0\sqrt{2} = p_0\sqrt{2} - p_0 q 1 2 = ( p 0 − q 0 ) 2 = p 0 2 − q 0 2 = p 0 2 − p 0 。而由 p 0 = q 0 2 p_0 = q_0\sqrt{2} p 0 = q 0 2 可得 p 0 2 = q 0 2 ⋅ 2 = 2 q 0 p_0\sqrt{2} = q_0\sqrt{2}\cdot\sqrt{2} = 2q_0 p 0 2 = q 0 2 ⋅ 2 = 2 q 0 ,于是 q 1 2 = 2 q 0 − p 0 = p 1 q_1\sqrt{2} = 2q_0 - p_0 = p_1 q 1 2 = 2 q 0 − p 0 = p 1 是一个正整数。
因此 q 1 ∈ A q_1 \in A q 1 ∈ A 且 q 1 < q 0 q_1 < q_0 q 1 < q 0 ,这与 q 0 q_0 q 0 是 A A A 的最小元矛盾。该矛盾说明 A A A 实际上必须为空集,所以 2 \sqrt{2} 2 是无理数。
常见错误. 常见的两类错误如下。第一,分类并非真正穷尽 或并非真正互斥 ——例如把整数分成“能被 2 2 2 整除”与“能被 3 3 3 整除”两类会在 6 6 6 的倍数处重叠,又遗漏了与 6 6 6 互素的数,因而什么也证明不了。第二,把极端原理用在根本没有极端元素的集合上——例如“设 x x x 为开区间 ( 0 , 1 ) (0, 1) ( 0 , 1 ) 中最大的实数”是没有意义的,因为该集合根本不存在最大值;极端原理需要一个有限 集合,或带有良序原理的整数集合,或一个闭且有界(紧)的集合。 历史注记
1893年,詹姆斯·约瑟夫·西尔维斯特提出了这样一个问题:平面上并非全部共线的有限点集,是否总存在一条恰好经过其中两点的寻常直线;这个问题一度几乎被遗忘,直到1943年保罗·埃尔德什重新发现并推广了它。蒂博尔·加莱在同年给出了第一个证明,但真正找到上文所述这一简短的极端原理证明的是莱罗伊·米尔顿·凯利,时间大约在1948年——这正是埃尔德什常说属于“天书”的证明之一。与此独立地,1934年拉斯洛·雷代已经用类似的极端论证证明了每个锦标赛都包含一条哈密顿路径。
保罗·爱尔特希
研究前沿 截至 2026 年
截至2026年,西尔维斯特—加莱定理仍在推动代数复杂性理论 中的活跃研究:该定理的“鲁棒”版本与高维版本(允许点取自 C \mathbb{C} C 或有限域,或允许近似共线而非严格共线的三元组)被用于证明深度为 4 4 4 的算术电路下界,并用于构造局部可纠错码,延续了 Barak、Dvir、Wigderson 与 Yehudayoff 开创的研究方向。在锦标赛方面,Schweser、Stiebitz 与 Toft 于2025年发表的一篇综述重新审视了雷代1934年的原始论文,指出其中实际上包含一个此前大多被忽视的更强定理,关于混合图(既有有向边又有无向边的图),奇数条哈密顿路径这一推论正是由此得出,这重新激起了人们对混合锦标赛与超图锦标赛中雷代式极端论证的兴趣。
西尔维斯特—加莱定理保证:对于平面上任意有限的 n ≥ 3 n \ge 3 n ≥ 3 个点的集合,只要满足以下条件,就一定存在一条寻常直线(恰好经过 2 2 2 个点):
这些点并非全部共线 n n n 是偶数没有两点重合 这些点位于一个圆上 6 6 6 支队伍进行一场循环赛(无平局)。根据雷代定理,在 6 ! = 720 6! = 720 6 ! = 720 种可能的队伍排序中,有多少种被保证是有效的哈密顿路径(即每支队伍都战胜排在其后一支队伍的完整排名)?
恰好 1 1 1 种 至少 1 1 1 种,但定理并未说明该排名是唯一的 恰好 720 720 720 种 0 0 0 ,除非比赛结果恰好具有传递性利用对模 3 3 3 余数的穷举分类讨论,从 1 1 1 到 300 300 300 的整数中有多少个不能 被 3 3 3 整除?
100 100 100 150 150 150 200 200 200 250 250 250 “最小反例法”的证明先假设命题为假,取出使命题不成立的最小实例,再由此导出一个更小的失败实例以得到矛盾。要使这一论证有效,潜在反例组成的集合必须具有什么性质?
它必须是良序非负整数的子集(或者说不存在无穷严格递减链) 它必须是不可数的 它必须至少包含 2 2 2 个元素 它必须在加法下封闭