锁定老帖子 主题:国王与100个囚犯
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (6)
|
|
---|---|
作者 | 正文 |
发表时间:2010-08-04
而且LZ是全局计数的,题目要求是让囚犯自圆其说,但囚犯是不知道其他囚犯的情况的
|
|
返回顶楼 | |
发表时间:2010-08-04
100次中可能有些人关了几次呢
|
|
返回顶楼 | |
发表时间:2010-08-04
除非告诉每个人,只能关一次
|
|
返回顶楼 | |
发表时间:2010-08-04
phyeas 写道 而且LZ是全局计数的,题目要求是让囚犯自圆其说,但囚犯是不知道其他囚犯的情况的
该程序明显是有问题的 |
|
返回顶楼 | |
发表时间:2010-08-04
思路:
·选被关后第一天出去的囚犯作为特殊的计数员 ·计数员被放出去,第一天将灯打开,今后每次放出去的时候,如果遇见灯是熄灭的,则将灯打开,并将记数加1 ·而其他囚犯为普通囚犯,普通囚犯如果被放出去,在第一次遇见灯是打开的时候将其关闭(其他情况,即遇见灯是熄灭或第2,3,4..次遇见灯是开着的时候什么也不做) ========================= 思路里面不是说了么?囚犯在被关前的30分种商量,就已经说好了,谁第一个出去谁做计数的,大家各自按自己角色行事,我想是否为第一天被放风只要脑壳没问题,都能分辨出来 ============= 100次中可能有些人关了几次呢 普通囚犯如果被放出去,在第一次遇见灯是打开的时候将其关闭(其他情况,即遇见灯是熄灭或第2,3,4..次遇见灯是开着的时候什么也不做) 。 ========= |
|
返回顶楼 | |
发表时间:2010-08-04
而且LZ是全局计数的,题目要求是让囚犯自圆其说,但囚犯是不知道其他囚犯的情况的
======== 普通囚犯只要知道自己是否已经关过灯。记数囚犯只需要放风遇见灯关时开灯,并在这时将记数+1就行了 当记数的囚犯记到100的时候,也就保证所有囚犯被放出去过 |
|
返回顶楼 | |
发表时间:2010-08-04
想不清楚的,可以把程序运行一遍,看输出的注释就了解了...
|
|
返回顶楼 | |
发表时间:2010-08-04
事实上,我觉得LZ的脑壳有问题,因为此题的先决条件是囚犯不知道时间,是不是第一天只有国王知道,你被关在一个封闭幽暗终日不见阳光的地方,你能知道过了几天吗?
|
|
返回顶楼 | |
发表时间:2010-08-04
程序本身是有问题的,思考的角度就有问题,题目本身是说从囚犯的角度去分析
|
|
返回顶楼 | |
发表时间:2010-08-04
我觉得思路可以,但是还是有问题呀啊,因为第一个被放出去的人无法界定。
而且楼主写的程序时随机时间,我看题目怎么是随机门号呀。 |
|
返回顶楼 | |