这是一个策略设计博弈谜题。说的是“囚犯与灯泡”的问题。

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

这个经典的问题在网上转载无数,题目描述被好事者们改得天花乱坠,甚至加进了“这盏灯永远有充足的能源供应”、“如果灯泡坏了或是电路出了故障会马上修好”等条件,剥掉了“算法问题”的外壳,填补了本不存在的漏洞,让更多的人动起了脑筋。在论坛上,每次贴出这个问题,总会引起一大群人论战。但很不幸的是,这个题目的来源至今仍是个谜。据目前的已知情况推测,这个题目最早来源于伯克利大学的电气工程荣誉学会,时间大概是2001年。在2002年7月,IBM官方网站上的Ponder This趣题栏目介绍了这个题目,“囚犯与灯泡”一炮走红,随即遍布网络的各个角落。2003年,《数学情报》(Mathematical Intelligencer)杂志上发表了一篇题为《一百个囚犯和一个灯泡》(One hundred prisoners and a lightbulb)的论文,也让囚犯们正式引起了数学家的关注。

想必很多人知道这个问题的标准答案了。

游戏开始前,囚犯们选出一个代表。在游戏过程中,除了这名代表以外,其他每个囚犯在进入房间时都遵循完全相同的策略:如果他是第一次看到灯泡处于不亮的状态,就按动开关,把灯泡变亮;在其他所有的情况下,他都什么也不做。每次这名代表进入房间时,如果他发现灯泡是亮的就把它关掉;如果他发现灯泡不亮,则什么也不做。同时,这名代表需要记住,他一共关过多少次灯。什么时候他发现关了99次灯,他就知道所有囚犯都进过房间了。

» 文章出处:

reille博客—http://velep.com

, 如果没有特别声明,文章均为reille博客原创作品

» 郑重声明:

原创作品未经允许不得转载,如需转载请联系reille#qq.com(#换成@)

分享到:

C语言100个囚犯和灯泡,一百个囚犯和一个灯泡相关推荐

  1. arrays中copyof复制两个数组_C语言100题集合026-使用指针交换两个数组中的最大值

    系列文章<C语言经典100例>持续创作中,欢迎大家的关注和支持. 喜欢的同学记得点赞.转发.收藏哦- 后续C语言经典100例将会以pdf和代码的形式发放到公众号 欢迎关注:计算广告生态 即 ...

  2. c语言 空格_C语言100题集合-ex003

    系列文章<C语言经典100例>持续创作中,欢迎大家的关注和支持. 喜欢的同学记得点赞收藏哦- 1 题目 函数:fun() 功能:统计一行字符串单词的个数,作为函数值返回 描述:一行字符串在 ...

  3. c语言100位整数变量声明_C ++程序动态声明一个整数变量并打印其内存地址

    c语言100位整数变量声明 Here, we will learn how we can declare an integer variable dynamically and how to prin ...

  4. 用指针交换两个数_C语言100题集合026-使用指针交换两个数组中的最大值

    系列文章<C语言经典100例>持续创作中,欢迎大家的关注和支持. 喜欢的同学记得点赞.转发.收藏哦- 后续C语言经典100例将会以pdf和代码的形式发放到公众号 欢迎关注:计算广告生态 即 ...

  5. char转化为cstring_C语言100题集合001-将一个数字字符串转换为一个整数

    系列文章<C语言经典100例>持续创作中,欢迎大家的关注和支持. 喜欢的同学记得点赞收藏哦- 1 题目 题目:将一个数字字符串转换为一个整数(不得调用C语言中提供的字符串函数进行操作) 例 ...

  6. C语言100题练习计划 31——计算两数的和与差(函数实现)

    名人说:纸上得来终觉浅,绝知此事要躬行.--陆游 进度:C/C++语言100题练习计划专栏,目前31/100

  7. 单片机c语言100例 的案例,51单片机C语言100个实例 [推荐下载】

    51单片机c语言100例 ,墙裂推荐下载 附上目录 ************************************************************函数的使用和熟悉****** ...

  8. C/C++语言100题练习计划 97——素数对

    名人说:博学之,审问之,慎思之,明辨之,笃行之.--<中庸> 进度:C/C++语言100题练习计划专栏,目前97/100 一.问题呈现 1.问题描述 Problem Description ...

  9. C语言100题练习计划 32——猜数字游戏

    名人说:纸上得来终觉浅,绝知此事要躬行.--陆游 进度:C/C++语言100题练习计划专栏,目前32/100

最新文章

  1. python sqlite和mysql_python怎么与mysql、sqlite数据库通信——适配器:DB-API
  2. lua学习笔记之环境
  3. console.log 如何打印对象
  4. 城市间紧急救援 (25 分)【dijkstra模板 超时原因】
  5. React Native 和ionic2 你选择哪一个?
  6. FPGA学习之路—Vivado与Modelsim联合仿真
  7. 正则表达式验证六位数以上数字,符号,字母任意两种混合的密码验证策略
  8. 欧盟无条件批准甲骨文收购Sun
  9. net 操作 EXCEL
  10. kafka to mysql_Flink实现Kafka到Mysql的Exactly-Once
  11. HTML5网站大观:10个精美的复古风格 HTML5 网站作品
  12. Erlang打包工具rebar安装使用
  13. SQL 2005 带自增列 带外键约束 数据导入导出
  14. Junit +cucumber 运行报错 initiallizationError
  15. LICEcap:GIF屏幕录制工具
  16. 关于《学编程,还有必要上大学吗? 》
  17. 模仿美团跑腿做的跑腿小程序
  18. openwrt路由器打印机服务器设置_openwrt路由器打印机服务器设置_TP-Link无线路由器打印机设置指南...
  19. 【深度学习基础】02梯度下降算法改进:SGD、Momentum、NAG、RMSProp、Adam等
  20. 中小团队落地配置中心详解

热门文章

  1. 近期Centos7下常用指令(1)
  2. 在LabVIEW中如何使用Flash动画
  3. 一个人年轻的时候,总以为疾病和死神只会光顾别人
  4. 三年级语文课外阅读赏析——心田花开
  5. 【AI绘画打卡】| 用漫画生成器绘制宅男最爱的二次元美女
  6. 教师节,给老师们写一个随机点名的网页
  7. 《游戏引擎架构》试读感想
  8. Mac电脑下好用的mac版远程控制远程桌面软件
  9. python第三方库bs4库实例之爬取古诗词网上诗歌
  10. CCF-CSP 201809-2买菜 满分题解