Exercise 4. 你是最近被捕的囚犯之一,你的名字叫:P。监狱长是一位丧心病狂的计算机科学家,他发表以下声明:
你们今天可以会聚在一起并计划一个策略,但是在今天之后,你们将被单独地关在监狱中,并且彼此之间不能再进行任何交流了。
我已经布置了一个“开关室”,其中包含一个开关,可以打开或关闭。开关没有连接任何灯泡之类的东西。
我会不时地随机选择一名囚犯进入“开关室”。这名囚犯可能会拨动开关(从开启到关闭,反之亦然),或者可以保持开关不变。此时没有人会进入这个房间。
每个囚犯将经常任意进入这个房间。更准确地说,对于任何N个囚犯,最终你们每个人都会至少N次进入这个房间。
在任何时候,你们中的任何人都可以告诉我:“我们所有人都至少有一次进过这个房间了。”如果说对了,我会放了你们。如果说错了,我会把你们所有人都送去喂鳄鱼。接下来就看你们的了!
- 当您知道开关的初始状态关闭时,设计一个获胜策略。
- 当您不知道开关的初始状态是打开还是关闭时,设计一个获胜策略。
提示:并非所有囚犯都需要做同样的事情。
问题分析
如果开关初始状态是关闭的:
对于N个囚犯,我是其中的P. P告诉大家:
- 你们都不能去告诉监狱长,只能由我去告诉监狱长。说:我们都至少一次进入房间了。
- 当你们第一次看到开关是关闭的时候,把它打开。从此之后,不管你们再进入多少次,都不做任何事情。
- 每次我进去,看到开关是打开的,就在心里计数,表示你们有一个人进入了。然后我把开关关掉。
- 当我心里计算到打开了N-1次之后,我就去给监狱长说了。
如果开关初始状态是不确定的:
对于N个囚犯,我是其中的P. P告诉大家:
- 你们都不能去告诉监狱长,只能由我去告诉监狱长。说:我们都至少一次进入房间了。
- 当你们第一次看到开关时。请记住他的状态,然后什么都不做离开。当你后面进入时。如果开关状态变化了,请把他复原为你第一次看到的状态。从此之后,不管进入多少次,都不要做任何事情。
- 当我第一次进入时,记住开关的状态,然后把它设置为相反的状态。以后每次进入,我观察开关状态和第一次状态相同不,如果相同,就在心里计数,表示你们有一个人进入了。然后我再把他设置为相反状态。
- 当我心里计算到N-1次之后,我就去给监狱长说了。