Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1575375
  • 博文数量: 399
  • 博客积分: 8508
  • 博客等级: 中将
  • 技术积分: 5302
  • 用 户 组: 普通用户
  • 注册时间: 2009-10-14 09:28
个人简介

能力强的人善于解决问题,有智慧的人善于绕过问题。 区别很微妙,小心谨慎做后者。

文章分类

全部博文(399)

文章存档

2018年(3)

2017年(1)

2016年(1)

2015年(69)

2013年(14)

2012年(17)

2011年(12)

2010年(189)

2009年(93)

分类: LINUX

2010-10-06 17:00:19

国王招来100个囚犯,对他们说:你们犯的是死罪,本应该将你们统统杀掉,但我慈悲为怀,给你们一次求生的机会。15分钟以后,你们将被关进一个有100间隔离牢房的监狱里,每人一间牢房,都与外界隔绝,什么也听不见、看不到,连时间都没法计算,更别说获得外界的任何信息。(送饭除外,但也是不规律的送)

这所监狱有一个院子,每天会随机(注意是完全随机)打开一间牢房的门,让那个囚犯到院子里来放风。院子里有一盏路灯,放风的囚犯可以控制它的开关,将它打开或是关闭。除囚犯之外,其他人都不会去碰开关。这盏灯会永远有充足的能源供应,如果灯泡坏了或是电路出了故障会马上修好,当然修理人员不会改变灯的状态(开或关)。

除了开关这盏灯,放风的囚犯放风时留下的任何其它痕迹都会在夜晚被清除干净(包括在灯上作的任何记号)。

牢房是完全封闭的,院子里的灯光在牢房里看不到。只有放风出到院子里的人才能看到。

好了现在我向你们提出一个要求,只要你们做到了,就可以全部获得释放:

若干天以后,你们中只要有任何一个人能够向我证明所有的人都曾到院子里去过,你们就全体释放。当然要有证据!因为我只会给你们一次机会,如果向我证明的那个人无法自圆其说,你们就全部砍头。所以,要珍惜这次机会。如果你们永远做不到我的要求,你们就全部囚禁到死。

现在给你们15分钟商量你们的方案。15分钟以后,你们将被关进我刚才说的那个监狱,永远无法再交流。


请你帮助囚犯给出一个方案

 

1)

首先我们称第一个出去的人为X,然后就以X为标准。只有X可以点灯,其他人不可以
第一次X出去的时候把灯点亮,
这时侯游戏才正式开始,我们称没有熄灭过灯的新人 熄灭过灯的为旧人
然后不论是谁 只要你没有熄灭过灯就把灯熄灭,如果你出来的时候灯是熄灭的 那你就什么也不做,等待下次有机会再熄灭。然后等第二次X出去的时候看到灯熄灭了 他就知道他两次出来之间至少有一个新人出来过一次,然后他记下1,把灯重新点亮,继续上面的操作
如果第二次他来的时候灯还是亮的说明这两次之间来的都是旧人,他也什么都不做,就这样每当他出去看见灯灭的时候就在原来的基础上加1 当这个数字为49的时候加上他自己就可以知道50个人已经完全都出去过了

2)

第一个人进去 开灯(这个人就是关键)

剩下的49个人进去后 如果是开灯的情况就关灯 如果是关灯的情况就不要动 注意每个人只能关一次灯

等第一个人再次进去 就打开灯

结果就是 当第一个人进去开灯达到50次时 就去报告

不过由于几率问题 这个可能要几十年的时间才能完成

3)

第一天放风的人的人称x先生。
虽然49个人不知道谁是 大家知道自己是不是x先生

x先生第一天把灯打开
非x先生如果看到灯开着并且从来没有关过灯就把灯关了。
x先生看到灯关了就打开
等到x先生开灯 50次(包括第一天)就ok了

阅读(917) | 评论(0) | 转发(2) |
0

上一篇:CYK algorithm

下一篇:抽屉原理

给主人留下些什么吧!~~