我们知道11只鸽子飞进10个巢里,必须导致至少有一个巢里有两只鸽子。这就是组合数学中一个重要而又初等的组合学原理,称鸽巢原理。巧妙运用鸽巢原理往往可以解决一些有趣的问题并且可以得出令人惊奇的结论。
定理1-1 鸽巢原理(简单形式):
将n+1个物体放入n个盒子中,那么至少有一个盒子包含两个或更多的物体。
【例1-1】
问从n对已婚夫妇中至少选取多少人才能保证至少选上一对夫妇?
解:n对夫妇相当于n个盒子,要保证至少选到一对夫妇,必须使某一盒子空,这样至少要考虑选n+1个人才能保证。
应用鸽巢原理需要搞清楚以下问题:什么是“鸽子”?什么是“巢”?鸽子与巢各有多少?其中的关键往往在于巧妙的构造巢。
【例1-2】
从1到2n的2n个正整数中任取n+1个,则这n+1个数中至少有一对,其中一个是另一个的倍数。
证明:设所取的n+1个数是a 1 ,a 2 ,…,a n+1 ,则从它们每一个的素分解中(如果含有的话)去掉含2的素因子,使它们只剩奇数因子,如20=2 2 ×5剩下了5.记剩下的相应奇数序列为r 1 ,r 2 ,…,r n+1 (鸽子)。而1到2n中只有n个奇数(巢),所以r 1 到r n+1 中至少有两个相同,不妨设为r i =r j ,则所它们所对应的a i 与a j 或相等(视为一倍关系)或成倍数关系。
【例1-3】
设在正六边形内有7个点,则至少有两个点的距离小于或等于正六边形的边长。
解:由正六边形的中心和6个顶点连接,将六边形划分成6个正三角形(巢),其边长等于六边形边长。由鸽巢原理,7个点中至少有两点在同一正三角形内,则这两点的距离不大于这个三角形的边长。
鸽巢原理还可以推广至更复杂的情况。
定理1-2 (鸽巢原理加强形式)
将m 1 +m 2 +…+m n -n+1个物体放入n个盒子内,则n个事件“第一个盒子中至少有m 1 个物体”、“第二个盒子中至少有m 2 个物体”、…、“第n个盒子中至少有m n 个物体”中至少有一个发生,其中m 1 ,…,m n ,n均为自然数。
证明:上述结论必然成立。否则,第一个盒内少于m 1 个物体,第二个盒内少于m 2 物体,…,第n个盒内少于m n 个物体,于是物体总数不超过为(m 1 -1)+(m 2 -1)+…+(m n -1)=m 1 +m 2 +…+m n -n,这与假设矛盾。