100个囚犯的脱狱问题

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值