话说有一国王找到100个囚犯,每个人都剃了光头。
国王对他们说:一会儿有人会在你们头上写上1-100之间的随机数。你们只要有一个人能说对大家头上所有数字的和,就都放了。否则统统赠送给芙蓉姐姐做宠物。给你们一炷香的时间好好商量一下对策。
这帮子囚犯都是学过基本算数的,加减乘除都没问题。
一炷香之后,国王的巫师屏蔽了他们之间的交流(不要问我怎么做到的) - 结果每个囚犯都能看到别人头上写的啥,但没办法知道自己的数字。
囚犯们采用什么策略才能保证一定会被释放呢?
解答:
设100个囚犯头上数字的和为sum;第N个囚犯头上数字为Pn(1<=Pn<=100),除第N个囚犯数字和为Tn,则sum = Pn+Tn,则Pn = sum - Tn成立;Pn-1 = - Tn0+sum0(注:如果为负的话加100即可)
第一个犯人:P1-1=-(T10)+0
第二个犯人:P2-1=-(T20)+1
...
第100个犯人:P100-1=-(T1000)+99
因为0<=sum0<=99,sum0是唯一的,则Pn中必有一个是某囚犯自己头上的数字,每个人提交Pn+Tn即可获释。
鸽巢原理也叫抽屉原理,是Ramsey定理的特例。
简单形式
如果n+1个物体被放进n个盒子,那么至少有一个盒子包含两个或更多的物体。
加强形式
令q1,q2,...qn为正整数。如果将
q1+q2+...+qn-n+1个物体放入n个盒子内,那么或者第一个盒子至少含有q1个物体,或者第二个盒子
至少含有q2个物体,...,或者第n个盒子含有qn个物体.