有100个无期徒刑的囚徒,被关在100个独立的小房间,互相无法通信。每天会有一个囚徒被随机地抽出来放风,随机的意思就是可能被抽到多次。
放风的地方有一盏灯,囚徒可以打开或者关上,除囚徒外,没有别人会去动这个灯。每个人除非出来放风,否则是看不到这个灯的。
一天,全体囚徒大会,国王大赦,给大家一个机会:如果此后某一天,某个囚徒能够明确表示(但事先没办法询问其他囚徒),所有的囚徒都已经被放过风了,而且的确如此,那么所有囚徒释放;如果仍有囚徒未被放过风,那么所有的囚徒一起处死!
囚徒大会后给大家20分钟时间讨论方法,然后放回牢房,囚徒们能找到方法吗?
补充:
这盏灯会永远有充足的能源供应,如果灯泡坏了或是电路出了故障会马上修好,当然修理人员不会改变灯的状态(开或关)。除了开关这盏灯,放风的囚犯放风时留下的任何其他痕迹都会在夜晚被清除干净。(包括囚徒在灯上所作的任何记号)
第一种方法:
第一天出来的这个囚徒负责拯救大家,以后出来的囚徒:
1.当灯是关着的时候,如果他没有开过灯,那他可以打开灯,否则他不能开灯;
2.当灯是开着的时候,他不动灯。
3.第一个囚徒在他放风的时候,如果发现灯是开的,那么他就关闭灯。这时他就把放过风的囚徒数加1.
当第一个囚徒的计数达到99的时候(加上他自己是100),他就可以宣布所有的囚徒都放过风,按平均计算100×99=9900天,就是27年。
第二种方法分两个阶段:
阶段一:(前100天决定谁来计数)
1.第1~99天,初始灯关着,第一个两次放过风的人将成为计数者,并将灯打开。设其为第k天,第二次放风,则他知道已经有k-1个人放过风,做为100天后计数的初始值。
2.第100天放风的人如果看见灯关着,则宣布所有人都放过风;否则把灯关上。
阶段二:(100天后)
1.如果计数者放风时看见灯开着,则将放过风的人数加1并关灯,到100时宣布胜利。
2.其他人如果以前没放过风,并且灯关着,则开灯,否则不动。
此方法期望年数为
24.42年。