鸽巢原理

鸽巢原理也叫抽屉原理,是Ramsey定理的特例。也是编程爱好者必须掌握的研究离散问题中存在性问题的方法。 
它的简单形式是 : 把n+1个物体放入n个盒子里,则至少有一个盒子里含有两个或两个以上的物体 。

做题之前,先贴几个小问题:

(1)月黑风高穿袜子 
  有一个晚上你的房间的电灯忽然间坏了,伸手不见五指,而你又要出去,于是你就摸床底下的袜子。你有三双分别为红、白、蓝颜色的袜子,可是你平时做事随便,一脱袜就乱丢,在黑暗中不能知道哪一双是颜色相同的。 
  你想拿最少数目的袜子出去,在外面借街灯配成同颜色的一双。这最少数目应该是多少? 
  如果你懂得鸽笼原理,你就会知道只需拿出去四只袜子就行了。 
  为什么呢?因为如果我们有三个涂上红、白、蓝的盒子,里面各放进相对颜色的袜子,只要我们抽出4只袜子一定有一个盒子是空的,那么这空的盒子取出的袜子是可以拿来穿。 
(2)手指纹和头发 
  据说世界上没有两个人的手指纹是一样的,因此警方在处理犯罪问题时很重视手指纹,希望通过手指纹来破案或检定犯人。 
  可是你知道不知道:在12亿中国人当中,最少有两个人的头发是一样的多? 
  道理是很简单,人的头发数目是不会超过12亿这么大的数目字!假定人最多有N根头发。现在我们想像有编上号码1,2,3,4,…一直到N的房子。 
  谁有多少头发,谁就进入那编号和他的头发数相同的房子去。因此张乐平先生的“三毛”应该进入“3号房子”。 
  现在假定每间房巳进入一个人,那么还剩下“九亿减N”个人,这数目不会等于零,我们现在随便挑一个放进一间和他头发数相同的房子,他就会在里面遇到和他有相同头发数目的同志了。 
 (3)戏院观众的生日 
  在一间能容纳1500个座位的戏院里,证明如果戏院坐满人时,一定最少有五个观众是同月同日生。 
  现在假定一年有三百六十五天。想像有一个很大的鸽子笼,这笼有编上“一月一日”,“一月二日”,至到“十二月三十一日”为止的标志的间隔。 
  假定现在每个间隔都塞进四个人,那么 4×365=1460个是进去鸽子笼子里去,还剩下1500-1460=40人。只要任何一人进入鸽子笼,就有五个人是有相同的生日了。

解题的关键是:弄清题目中,谁是鸽子谁是巢

题1:证明,如果从{1,2,3,….3n}中选择n+1个整数,那么总存在两个整数,他们之间的差最多为2。

解:分组化简。将这3n个整数分组,{1,2,3},{4,5,6}…..{3n-2,3n-1,3n} 共n组。这样题目等价于:将n+1个整数放在n个盒子里。则根据原理,至少存在一个盒子里有两个数,这两个数之差最多为2。

题2:证明,对于任意给定的52个整数,存在其中的两个整数,要么两者的和能被100整除。要么两者的差能被100整除。

解:还是分组化简!将数这样进行分组:将所有整数的后两位尾数分组。{+0,-0,+100,-100,+200,-200….},{+1,-1,+99,-99,+101,-101,+199,-199,+201,-201……},……,{+49,-49,+51,-51,+149,-149,+151,……}{+50,-50,+150,-150,+250,-250……}    这样。将所有的能被100整数的数分为51组(鸽子)。而从中取52个,(巢)。必有两个在同一组。得证。

题3:一个学生有37天来准备考试,她知道她需要不超过60小时的学习时间,她还希望每天至少学习1小时。证明,无论如何安排学习时间(每天都是整数小时),都存在连续的若干天,在此期间她恰好学习了13个小时。

证明:令a1为她第一天学习的小时数,a2为第二天的学习时数。这样。存在这样一个递增数列a1,a2,a3,……a37。满足:1<=a1<a2<a3……a37<=60。同时,将这个数列每个数都加上13。则存在数列:14<=a1+13<a2+13<a3+13……a37+13<=73。而这两个数列共有37+37=74个成员。这样。鸽子和巢终于出现^_^ 必然存在一个ai,和一个aj.使得ai=aj+13.就是说这两个数列中必然有两个差为13的数。得证。

 题4:一个袋子装了100个苹果,100个香蕉,100个橘子,100个梨子。如果我们每分钟从袋子里取出1种水果,那么需要多少时间我就能肯定至少已经拿出1打相同种类的水果。

解:根据鸽巢原理加强形式:如果q1,q2,,,,,qn为正整数,将q1+q2+…..qn-n+1个物体放入n个盒子里。那么,至少存在一个盒子含有qn个物体。对于此题:我们需要取12个水果。设已经取出了11个水果,还剩下一个。那么需要11×4+1分钟。

题5:证明对于任意n+1个整数a1,a2,…..a(n+1)存在两个整数ai和aj,i≠j,使得ai-aj能够被n整除。

解:由于任一整数被n整除的余数有0,1,2,……n-1。 共n种,对于n+1个数,由鸽巢原理可得证。即存在ai,aj。ai=bn+r,aj=cn+r (b>c)。ai-aj=(b-c)n。所以n|ai-aj。至少两个整数被n整除的余数相等。

题6:证明,边长为2的正方形中取5个点,当中存在2个点,这2点的距离至多为√2

解:将正方形分成四等分即可。

转载:http://blog.csdn.net/lcj_cjfykx/article/details/41695111

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值