100个囚犯的脱狱问题

来源:互联网 发布:《知无涯者》 编辑:程序博客网 时间:2024/05/01 12:43

话说有一国王找到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个物体.

原创粉丝点击