CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  扩充话题 >  灌水乐园

100个囚徒问题

楼主lwang337(初一)2003-03-01 22:08:47 在 扩充话题 / 灌水乐园 提问

有100个无期徒刑囚徒,被关在100个独立的小房间,互相无法通信。  
  每天会有一个囚徒被随机地抽出来放风,随机就是说可能被抽到多次。  
  放风的地方有一盏灯,囚徒可以打开或者关上,除囚徒外,没有别人会去动这个灯  
  。每个人除非出来防风,是看不到这个灯的。  
  一天,全体囚徒大会,国王大赦,给大家一个机会:如果某一天,某个囚徒能够明  
  确表示,所有的囚徒都已经被放过风了,而且的确如此,那么所有囚徒释放;如果  
  仍有囚徒未被放过风,那么所有的囚徒一起处死!  
   
  囚徒大会后给大家20分钟时间讨论,囚徒们能找到方法么?  
   
  这个问题是著名的谜题之一,如果大家认为自己找到了方法,再仔细想想,有没有  
  效率更高的?  
  问题点数:0、回复次数:16Top

1 楼JennyVenus()回复于 2003-03-01 22:20:24 得分 0

笨方法,大家统一口径,都说放过。Top

2 楼skyan(樱庭)回复于 2003-03-01 22:20:51 得分 0

好题,思考中...Top

3 楼cxx1997(小网虫)(最厉害的妖怪))回复于 2003-03-01 22:29:38 得分 0

一盏灯只能表示开和关两个状态,如何表示100个数呢?  
   
  个人建议,第一个囚徒放风后,将灯泡放在第一个小房间前,以后,每一个第一次被放的囚徒将这个灯泡后移一个房间,直到这个灯泡被放到第100号房间,就说明所有人都出来过了!Top

4 楼cxx1997(小网虫)(最厉害的妖怪))回复于 2003-03-01 22:30:21 得分 0

skyan(樱庭):  
        你发现标准答案后,发消息给我,我以后很少来了,不过你的贴,我会关注的,:-)Top

5 楼skyan(樱庭)回复于 2003-03-01 22:34:52 得分 0

好的一定,你上面说的也很有道理:)Top

6 楼skyan(樱庭)回复于 2003-03-01 22:39:05 得分 0

囚犯不是按次序来放风的,第100个囚犯并不知道灯泡去过多少房间  
   
  1   2   3   4   5....100  
  开关开关.....重复的不动  
  囚犯牢记天数,按偶数奇数来计算。。。不过有个随机不太好办。。这个题真的有方法么?Top

7 楼lwang337(初一)回复于 2003-03-02 08:50:02 得分 0

最简单的办法是约定由最后一个人(100号)负责关灯,其他人如果以前没有开过灯在放风的时候就把灯打开(如果灯是亮的就只好等下一次机会了),当100号关了99次灯后,就知道所有的人都放过风了。据别人计算,用这种方法成功的时间是36年,所以效率很低,大家看看有没有什么更好的方法  
   
  主要是不知道贴到哪个版,呵呵,只好贴到这儿了Top

8 楼skyan(樱庭)回复于 2003-03-02 13:52:08 得分 0

晕。。这个方法确实可行,不过要至少要抽到100号99次。。。。faint....随机抽上N年也不一定啊。。。Top

9 楼skyan(樱庭)回复于 2003-03-02 13:52:39 得分 0

好题再UPTop

10 楼cxx1997(小网虫)(最厉害的妖怪))回复于 2003-03-02 19:20:37 得分 0

lwang337(新手上路)   :  
        说的可行,但是估计,囚犯们是等不到出去的哪天了!Top

11 楼yiyingtian(一小刀)()回复于 2003-03-02 19:31:22 得分 0

我是囚徒。我还在监狱那。是谁给国王出的馊注意,郁闷!Top

12 楼J2eeLearner(重新出山)回复于 2003-03-02 20:08:01 得分 0

靠,用概率!  
   
  一亿亿天后   就全被放过了!!  
   
  Top

13 楼mmwhh(哀莫大于心不能不死)回复于 2003-03-02 20:09:13 得分 0

好题目,再upTop

14 楼KennyYuan(我是白菜)回复于 2003-03-02 20:16:44 得分 0

lwang337(新手上路)   的方法倒是可行,可是等得起吗?  
  Top

15 楼bauhaus()回复于 2003-03-02 20:21:26 得分 0

来过的人就把数字加一,例如第一个放风的就写上一,第二个就把以前的数字加一,以此类推,来过了就不动,没有来过,就把以前的数字加一,如果到100了,那就是全都放过风了,大家认为对不对?Top

16 楼yysinger(singer)回复于 2003-03-03 06:32:22 得分 0

gzTop

相关问题

  • 一个、两个、三个、四个、五个、六个、七个、
  • 一个
  • 换个。。。
  • 一个
  • 一个?
  • 请问这个...这个API??
  • 看这个,问个问题~~~~~~~~~~~~~~~~~~~~~~~~~
  • 那个那个。。问一下
  • 想买个MP3,哪个好?
  • 2个公司选哪个好?

关键词

  • 数字
  • 囚徒
  • 放风
  • 囚犯
  • 灯泡
  • 灯
  • 方法
  • 可行
  • 放过风
  • 房间

得分解答快速导航

  • 帖主:lwang337

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo