监狱灯泡问题

有 100 个囚犯分别关在 100 间牢房里。牢房外有一个空荡荡的房间,房间里有一个由开关控制的灯泡。初始时,灯是关着的。看守每次随便选择一名囚犯进入房间,但保证每个囚犯都会被选中无穷多次。如果在某一时刻,有囚犯成功断定出所有人都进过这个房间了,所有囚犯都能释放。游戏开始前,所有囚犯可以聚在一起商量对策,但在此之后它们唯一可用来交流的工具就只有那个灯泡。他们应该设计一个怎样的协议呢?

解决办法:

-设某个特定的人为A,并把房间里的灯打开。【对于A设变量sum=1】

-后面进去的人如果是第一次进去或没有打开过灯(A除外),且灯是亮的,那么就把灯关闭;如果不是第一次进去或打开过灯或灯已经是关闭的状态(A除外),那么就直接离开。

-再后面的人进去后遵循第二条规则。

-如果A再次进入这个房间,且灯已经是关闭的状态了,那么将sum加上1。

-如果A发现sum等于100,那么就能判定100人都进来过;如果不是,那么离开,后面的人从第二条规则开始再次进入循环。

*本人为初中生,若有错误请谅解,谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值