问题如下:有100个犯人,头天晚上被通知第二天一早要带着一顶帽子(总共有100顶黑的和100顶白的,帽子是随机带的,而且不知道自己头上的帽子是什 么颜色),排成一列直线队伍,后面的人能看到前面的所有人带的帽子的颜色,前面的看不到后面的人的帽子颜色,现在警官让犯人们先讨论下,等明天排队时,警 官从最后一个人问起直到第一个,“你头上带的帽子颜色是黑还是白?”犯人只许说一个字“黑或白”,(说话时没有任何提示,都是标准的一个音,而且没有眼神 什么提示,有的只是头天晚上想出的方法)犯人说错直接杀,说对了马上放了,问讨论出一个怎样的方法使被杀的人数确定最少?
感觉最接近正确的答案:
犯人们先商量好,等排好队后,每个人都先记下在自己前面人的黑帽子的个数和白帽子的个数.
排在最后面的人的答案是关键的,他掌控着所有人的生死大权哦,这样,他前面所有的人都要记下他的答案,而且要记下他后面每一个人的答案.
比如说:
倒数第一个人,他前面99个人中白色帽子是奇数个数,那他就说自己的帽子白色,这是事先协商好的.
倒数第二个人,他就知道白是奇数,这时如果他前面看到的98个人中白色是偶数的话,那他自己一定就是白色的了,他就要说是白.
倒数第三个人,如果他前面97个人中白色偶数的话,而他后面的人是白色,所以他可以马上知道自己也是黑色了.
倒数第N个人,以此类推啦....
运气好的话,一个都不用死哦
奇偶校验法
感觉最接近正确的答案:
犯人们先商量好,等排好队后,每个人都先记下在自己前面人的黑帽子的个数和白帽子的个数.
排在最后面的人的答案是关键的,他掌控着所有人的生死大权哦,这样,他前面所有的人都要记下他的答案,而且要记下他后面每一个人的答案.
比如说:
倒数第一个人,他前面99个人中白色帽子是奇数个数,那他就说自己的帽子白色,这是事先协商好的.
倒数第二个人,他就知道白是奇数,这时如果他前面看到的98个人中白色是偶数的话,那他自己一定就是白色的了,他就要说是白.
倒数第三个人,如果他前面97个人中白色偶数的话,而他后面的人是白色,所以他可以马上知道自己也是黑色了.
倒数第N个人,以此类推啦....
运气好的话,一个都不用死哦
奇偶校验法
发表评论
- 浏览: 26857 次
- 来自: 北京

- 详细资料
搜索本博客
最新评论
-
Servlet、Jsp性能优化
不错的文章,谢谢
-- by gongmingwind -
Servlet、Jsp性能优化
...
-- by gongmingwind -
基于Beehive,EJB3.0开发 ...
为何要使用EJB?
-- by fangzhouxing -
rubbin 的感慨
引用 1、JVM的内存管理 理解了这一点,所有和对象相关的问题统统都能解决 ...
-- by xiongx -
rubbin 的感慨
有好路不走非要去练葵花。。。。
-- by 抛出异常的爱






评论排行榜