“对 $r+s$ 归纳,设 $a=R(r 1,s)$、$b=R(r,s 1)$ 已存在。在 $K {a+b}$ 中固定顶点 $v$,按与 $v$ 相连的边色,把其余 $a+b 1$ 个顶点分为…”
形式陈述
则不存在从
更一般地,设整数
个对象,其中
直觉
鸽巢原理并不依赖对象是什么,只比较分类前后的容量。证明问题时,真正有创造性的部分通常不是最后一句“所以发生碰撞”,而是选择一个合适的分类函数:哪些对象当作鸽子,哪些不变量当作巢,以及每个巢最多能容纳多少对象。
它给出的是存在性。若对象多于可区分状态,就必有两个对象落入同一状态;但原理本身不会指出是哪两个,也不会给出高效寻找方法。算法若需要实际找到碰撞,还必须利用对象的表示、排序或搜索结构。
强化形式可以理解为平均数的离散版本。平均占用量是
例子与边界
设
在有
边界必须精确。
无限集合中不能只比较“看起来更多”。自然数与偶数之间存在双射,所以把无限多个对象放进无限多个容器时,有限版容量直觉可能失效。此时必须使用基数、测度或密度等更精细工具。
推论与应用
给定任意
因此必有一段非空连续子序列之和被
同样的做法还可把几何点按网格单元分类,以小单元限制两点距离;把输入前缀按自动机状态分类,则可找出进入同一状态的不同前缀。每次都需要说明“同巢”怎样转回题目要求的结论。
在计算机科学中,有限哈希空间接收更多键时必然发生哈希冲突;有限状态机运行足够久后必然重复状态;固定长度摘要无法为无限消息提供无碰撞编码。这些都是同一容量事实,但实际安全性或算法性能还取决于碰撞是否容易构造、分布是否均匀以及系统如何处理冲突。
参考资料
- Mitchel T. Keller and William T. Trotter, Applied Combinatorics, 在线版,2026 年访问,§4.1 The Pigeon Hole Principle,容量论证与分类函数的选择。
- Kenneth H. Rosen, Discrete Mathematics and Its Applications, 8th ed., McGraw-Hill, 2019, Section 6.2.
- Miklós Bóna, A Walk Through Combinatorics, 4th ed., World Scientific, 2016, Chapter 2.
- László Lovász, József Pelikán, and Katalin Vesztergombi, Discrete Mathematics, Springer, 2003, counting principles.