Exercise 4. 你是最近被捕的囚犯之一,你的名字叫:P。监狱长是一位丧心病狂的计算机科学家,他发表以下声明:

你们今天可以会聚在一起并计划一个策略,但是在今天之后,你们将被单独地关在监狱中,并且彼此之间不能再进行任何交流了。

我已经布置了一个“开关室”,其中包含一个开关,可以打开或关闭。开关没有连接任何灯泡之类的东西。

我会不时地随机选择一名囚犯进入“开关室”。这名囚犯可能会拨动开关(从开启到关闭,反之亦然),或者可以保持开关不变。此时没有人会进入这个房间。

每个囚犯将经常任意进入这个房间。更准确地说,对于任何N个囚犯,最终你们每个人都会至少N次进入这个房间。

在任何时候,你们中的任何人都可以告诉我:“我们所有人都至少有一次进过这个房间了。”如果说对了,我会放了你们。如果说错了,我会把你们所有人都送去喂鳄鱼。接下来就看你们的了!

  • 当您知道开关的初始状态关闭时,设计一个获胜策略。
  • 当您不知道开关的初始状态是打开还是关闭时,设计一个获胜策略。

提示:并非所有囚犯都需要做同样的事情。

问题分析
如果开关初始状态是关闭的:
对于N个囚犯,我是其中的P. P告诉大家:

  1. 你们都不能去告诉监狱长,只能由我去告诉监狱长。说:我们都至少一次进入房间了。
  2. 当你们第一次看到开关是关闭的时候,把它打开。从此之后,不管你们再进入多少次,都不做任何事情。
  3. 每次我进去,看到开关是打开的,就在心里计数,表示你们有一个人进入了。然后我把开关关掉。
  4. 当我心里计算到打开了N-1次之后,我就去给监狱长说了。

如果开关初始状态是不确定的:
对于N个囚犯,我是其中的P. P告诉大家:

  1. 你们都不能去告诉监狱长,只能由我去告诉监狱长。说:我们都至少一次进入房间了。
  2. 当你们第一次看到开关时。请记住他的状态,然后什么都不做离开。当你后面进入时。如果开关状态变化了,请把他复原为你第一次看到的状态。从此之后,不管进入多少次,都不要做任何事情。
  3. 当我第一次进入时,记住开关的状态,然后把它设置为相反的状态。以后每次进入,我观察开关状态和第一次状态相同不,如果相同,就在心里计数,表示你们有一个人进入了。然后我再把他设置为相反状态。
  4. 当我心里计算到N-1次之后,我就去给监狱长说了。

监狱长关押囚犯问题.相关推荐

  1. 绿皮书一些quant 题目 (1)

    2019独角兽企业重金招聘Python工程师标准>>> 1.题目 1. A让C要送一份资料给B.但C不可靠,A可以把资料放在盒子里锁上才能送给B,但B也需要拿到钥匙才能打开盒子.问A ...

  2. 绿皮书里的智力面试题

    转自--http://zhiqiang.org/blog/science/brain-teasers-from-quant-practical-guide.html 题目来源:<A practi ...

  3. 尴尬!因软件 Bug ,美国数百名囚犯释放后无法出狱

    [CSDN 编者按]你敢想,真的会出现因为软件 Bug,上百起刑满人员被继续关押的奇葩事件. 整理 | 李磊    责编 | 张文 出品 | CSDN(ID:CSDNnews) 近日,一位来自美国亚利 ...

  4. 囚犯排队红帽子和蓝帽子问题

    Exercise 5. 同一个监狱长有不同的想法. 他命令囚犯排队站成一列,并在他们的每个头上放置红色或者蓝色的帽子.没有囚犯知道他自己的帽子的颜色,或他身后任何囚犯帽子的颜色,但他可以看到前面 的所 ...

  5. Python 有趣的囚犯问题

    一个监狱中有n个囚犯,每个犯人一个单独的房间,犯人之间不能进行通讯. 监狱规定每天可以有一个犯人出来放风,并且犯人在往返住所的过程中不能和其他犯人进行联系. 放风的操场上有一盏灯,犯人可以随意的进行开 ...

  6. 关押罪犯-并查集、贪心

    题目来源:Acwing 257.关押罪犯&洛谷 P1525 [NOIP2010 提高组] 关押罪犯 思路来源:这里 题目描述 S 城现有两座监狱,一共关押着 N 名罪犯,编号分别为1~N. 他 ...

  7. 百囚犯问题(100 prisoners problem)

    百囚犯问题(100 prisoners problem) 文章目录 百囚犯问题(100 prisoners problem) 问题描述 策略选择 拓展到2n个囚犯 问题描述 Philippe Flaj ...

  8. 置换与轮换——百囚犯问题

    问题描述 Philippe Flajolet和Robert Sedgewick在2009年提出了"百囚犯问题(100 prisoners problem). 在某个法制不健全的国家,监狱中有 ...

  9. 监禁25年!这个囚犯人生无望,直到他在监狱自学成了数学家....

    Python实战社群 Java实战社群 长按识别下方二维码,按需求添加 扫码关注添加客服 进Python社群▲ 扫码关注添加客服 进Java社群▲ 来源丨英国那些事儿 https://mp.weixi ...

最新文章

  1. 【Android 逆向】加壳技术识别 ( 函数抽取 与 Native 化加壳的区分 | VMP 加壳与 Dex2C 加壳的区分 )
  2. 【Java】Float计算不准确
  3. python函数实例化_用Python实例化函数
  4. Leetcode每日一题:690.employee-importance(员工的重要性)
  5. android之camera
  6. 视频编解码(八):264/265解码器小结
  7. 我的朋友圈又被刷屏了。
  8. 459.重复的子字符串
  9. CheckBox组件
  10. go的编程哲学和设计理念
  11. C语言入门20个简单程序|最新更新2021.7.13
  12. 计算机网络故障的论述,计算机应用中常见的网络故障及解决方法
  13. Golang开源流媒体服务器(RTMP/RTSP/HLS/FLV等协议)
  14. 2020亚太数学建模竞赛A题翻译
  15. 《灵魂的微笑》读后感
  16. 转贴:Microsoft OLE DB Provider for SQL Server错误80040e37
  17. Win11 专业工作站版安装安卓子系统方法 (离线包安装)
  18. 安装ArcGIS10.2,localhost没有有效的许可管理器的解决办法
  19. 1036. 跟奥巴马一起编程(15)
  20. RegAsm安装卸载办法

热门文章

  1. Churchy 教会慈善 Joomla模板 joomla高级模板
  2. 企业如何选择一个靠谱的培训直播平台呢?
  3. 零基础入门学习Python(19)--函数:我的地盘听我的
  4. VLAN的TRUNK协议(VTP)
  5. python opencv读取视频没声音_python + opencv: 解决不能读取视频的问题
  6. ERR_UNSAFE_PORT解决以及所有非安全端口
  7. 至强服务器性能视频,至强E5 V3性能表现测试_戴尔服务器_服务器评测与技术-中关村在线...
  8. 二进制枚举+prim buy or build 问题
  9. 模拟黑客思维对网站进行CC压力测试!(二)
  10. 完美打印CSDN网页(整理自其他博客)