本文属于「离散数学」系列文章之一。这一系列着重于离散数学的学习和应用。由于内容随时可能发生更新变动,欢迎关注和收藏离散数学系列文章汇总目录一文以作备忘。此外,在本系列学习文章中,为了透彻理解数学知识,本人参考了诸多博客、教程、文档、书籍等资料。以下是本文的不完全参考目录,在后续学习中还会逐渐补充:
- (国外经典教材)离散数学及其应用 第七版
Discrete Mathematics and Its Applications 7th
,作者是Kenneth H.Rosen
,袁崇义译,机械工业出版社- 离散数学 第二版,武波等编著,西安电子科技大学出版社,2006年
- 离散数学 第三版,方世昌等编著,西安电子科技大学出版社,2013年
- (经典参考书及其题解)离散数学/离散数学——理论•分析•题解,左孝凌、李为鉴、刘永才编著,上海科学技术文献出版社
- 离散数学习题集:数理逻辑与集合论分册,耿素云;图论分册,耿素云;抽象代数分册, 张立昂。北京大学出版社
4.3 鸽巢定理
4.3.1 鸽巢原理及其推论
鸽巢定理 pigeonhole principle
又称为抽屉原理,是19世纪由德国数学家狄利克莱 Dirichlet
首先提出的。鸽巢原理虽然简单,但能够解决许多存在性的应用问题。
定理4.3.1 如果让 m m m 只鸽子飞入 n ( n < m ) n\ (n < m) n (n<m) 个鸽巢内,那么至少有一个鸽巢飞入两只或更多的鸽子。
证明 (反证法)假设没有一个鸽巢中飞入两只或更多的鸽子,那么每个鸽巢中至多飞入一只鸽子,因此鸽子总数至多为 n n n 只,这与鸽子总数 m > n m > n m>n 矛盾。因此,至少有一个鸽巢中飞入两只或更多的鸽子。
用数学语言表述鸽巢原理就是:设 X , Y X, Y X,Y 是任意两个有限集合,如果 ∣ X ∣ > ∣ Y ∣ |X| > |Y| ∣X∣>∣Y∣ ,那么对于任意一个从 X X X 到 Y Y Y 的映射 f f f ,必定存在 x 1 , x 2 ∈ X x_1, x_2 \in X x1,x2∈X 使得 f ( x 1 ) = f ( x 2 ) f(x_1) = f(x_2) f(x1)=f(x2) 。
我们可将以上的鸽巢原理推广为更一般的形式。
定理4.3.2 设 q 1 , q 2 , … q n q_1, q_2, \dots q_n q1,q2,…qn 是 n n n 个正整数,如果有 ( q 1 + q 2 + ⋯ + q n ) + 1 (q_1 + q_2 + \dots + q_n) + 1 (q1+q2+⋯+qn)+1 只鸽子飞入编号为 1 , 2 , … , n 1, 2, \dots, n 1,2,…,n 的 n n n 个鸽巢中,那么或者 1 1 1 号鸽巢中飞入至少