鸽巢原理(Pigeonhole Principle)的基本定理


If n + 1 objects are distributed into n boxes, then at least one box contains two or more of the objects.


一个简单的例子:13个人里至少有两个人的生日是同一月的。


鸽巢原理的相关原理: If n objects are put into n boxes and no box gets more than one object, then each box has an object in it.


Let X and Y be finite sets and let f : X -> Y be a function from X to Y. There are following conclutions:


• If X has more elements than Y, then f is not one-to-one.


• If X and Y have the same number of elements and f is onto(映射的), then f is one-toone.


• If X and Y have the same number of elements and f is one-to-one, then f is onto.


应用:


同余序列问题:2,4,6,3,5,5,6是一个数列,定义Sum(i)=a1+a2+……+ai,那么对应的Sum(i)应该是:2,6,12,15,20,25,31.Sum数列Mod(7)结果是:2,6,5,1,6,4,3.有两个数的Sum是同余的,即Sum(2)=q1*7+r.  Sum(5)=q2*7+r.那么有Sum(5)-Sum(2)=(q2-q1)*7。hence: (6+3+5)%7=0.


应用:一名棋手有11周的时间来准备一场比赛,它决定每天至少训练一场,为了保证不过量,每周不超过12场。证明存在着连续m天这名选手会训练21场。


解答:设si是从第一天到第i天的训练次数,有1<=s1<s2<s3<……<s77<=132. -->22<=s1+21<s2+21<s3+21<……<s77+21<=153. s1,s2……s1+21,s2+21……s77+21共是154个数字,然而所有的数字值必是不超过153的,所以一定有两个数字是相等的。sj+21=si --> j+1,j+2,……,i天共进行了21场比赛。


应用:从整数1,2,3……200中选出101个数,一定有2个数字a,b可以满足这样的条件:a%b=0 or b%a=0。


解答:由素因子分解相关的知识可知,一个数字能被写成2^k*a,其中k>=0,a为奇数。分析可知:在1——200的范围内有奇数:1,3,5……199一共100个。选出的101个数字一定有两个拥有相同的奇数因子a。那么这两个数字相除的结果是2^(k1-k2),即满足题干条件。


鸽巢原理加强版[Pigeonhole Principle(Strong Form)]


Let ql, q2,……,qn be positive integers. If ql + q2 + ... + qn - n + 1 objects are distributed into n boxes, then either the first box contains at least ql objects, or the second box contains


at least q2 objects, ... , or the nth box contains at least qn objects.


推论:Let n and r be positive integers. If n(r -1) + 1 objects are distributed into n boxes, then at least one of the boxes contains r or more of the objects.


另一种说法:If the average of n nonnegative integers ml, m2, ... ,mn is greater than r - 1, that is,(ml + m2 + ... + mn)/n>r-1, then at least one of the integers is greater than or equal


to r.


Another averaging principle:  If the average of n nonnegative integers ml, m2, ... , mn is at least equal to r, then at least one of the integers ml, m2, ... , mn satisfies mi >= r.


例子:试着证明从{1,2,3……kn}中选出n+1个数,总存在两个数它们最多相差k-1.


解答:将所有数字分成n组:{1,2,3……k},{k+1,k+2,k+3……2k},{2k+1,2k+2……3k}……{(n-1)k+1,(n-1)k+2……kn}。选出的n+1个数字一定有两个属于同一组,那么他们的差最大是k-1.


例子:路易·波萨是匈牙利数学家, 在他11岁时匈牙利大数学家厄杜斯给他出了个问题: “如果你手头上有n+1个整数,这些整数是小于或等于2n的,那么你一定会有一对数是互素的。你知道这是什么原因吗?”波萨仅思考了半分钟就巧妙地回答了这个问题。


解答:假设这个说法是错误的,那么取最大数和最小数:a(n+1)和a1,有a1>=2,a(n+1)一定大于等于(n+2)*2.


例子:把1至10这十数字随机的排成一个圆圈,证明必有一个三相邻数字之和大于等于17.


解答:把1至10这十个数字随机排成一个圆圈,从中任取三个相邻数字的方法有10种。这10种的总和等于:3*(1+2+3+……+10)=3*11/2*10。那么,平均相邻3数和是3*11/2*10/10=16.5>16. 所以呢,一定有一个三相邻数字之和大于等于17.


Application 9.Show that every sequence aI, a2, ... ,an2+1 of n2 + 1 real numbers contains either an increasing subsequence of length n + 1 or a decreasing subsequence of length n + 1.证明见图:


鸽巢原理(Pigeonhole Principle)_整除


利用余数分类构造“鸽巢”:


试证明任意给定52个整数,它们之中必有2个数,其和或差是100的倍数(即被100整除)


解答:用0,1,2,…,99这100个余数来构造鸽巢,将它们分为51组,构造出51个鸽巢:{0},{1,99},{2, 98},…{49,51},{50}。由鸽巢原理,这52个整数分别除以100产生的52个余数r1,r2,…r52中必有两个余数落在同一组中。



鸽巢原理的推广---Ramsey定理的具体内容可以查阅《Introductory Combinatorics Fifth Edition》--THE PIGEONHOLE PRINCIPLE--A THEOREM OF RAMSEY