有 100 个囚犯分别关在 100 间牢房里。牢房外有一个空荡荡的房间,房间里有一个由开关控制的灯泡。初始时,灯是关着的。看守每次随便选择一名囚犯进入房间,但保证每个囚犯都会被选中无穷多次。如果在某一时刻,有囚犯成功断定出所有人都进过这个房间了,所有囚犯都能释放。游戏开始前,所有囚犯可以聚在一起商量对策,但在此之后它们唯一可用来交流的工具就只有那个灯泡。他们应该设计一个怎样的协议呢?
解决办法:
-设某个特定的人为A,并把房间里的灯打开。【对于A设变量sum=1】
-后面进去的人如果是第一次进去或没有打开过灯(A除外),且灯是亮的,那么就把灯关闭;如果不是第一次进去或打开过灯或灯已经是关闭的状态(A除外),那么就直接离开。
-再后面的人进去后遵循第二条规则。
-如果A再次进入这个房间,且灯已经是关闭的状态了,那么将sum加上1。
-如果A发现sum等于100,那么就能判定100人都进来过;如果不是,那么离开,后面的人从第二条规则开始再次进入循环。
*本人为初中生,若有错误请谅解,谢谢!

3456

被折叠的 条评论
为什么被折叠?



