问题描述
有100个无期囚徒,被关在100个独立的小房间,互相无法通信。
每天会有一个囚徒被随机地抽出来放风,随机就是说可能被抽到多次。
放风的地方有一盏灯,囚徒可以打开或者关上,除囚徒外,没有别人会去动这个灯。每个人除非出来防风,是看不到这个灯的。
一天,全体囚徒大会,国王大赦,给大家一个机会:如果某一天,某个囚徒能够明确表示,所有的囚徒都已经被放过风了,而且的确如此,那么所有囚徒释放;如果仍有囚徒未被放过风,那么所有的囚徒一起处死!
囚徒大会后给大家20分钟时间讨论,囚徒们能找到方法么?
解决办法
如果是犯人讨论完马上就叫一个人放风,这个人自己知道自己是第一个人,他就是关键的计数人!
规定:
- 只有这个第一个人有权利开灯!只要他放风时发现灯是关的,他就要打开并计数
- 所有犯人,只能关一次灯,即在自己放风时第一次看到灯亮着的时候才能关,如果关过了一次就不能再关了。
也就是说,当第一个人开第100次灯的时候,就是他们释放的时候了。