一个有趣的智力题,可以看看
2018-03-27 13:12
225 查看
题目
“从前,有个小岛上只住着和尚。有些和尚的眼睛是红色的,而另一些的则是褐色。红色眼睛的和尚受到诅咒,如果得知自己的眼睛是红色的,那么当晚12点必须自行了断。(因为受到诅咒,所以只要得知自己的眼睛是红色的,则必须选择自杀,无一例外。)”和尚们之间有一条不成文的规定,彼此不能提起对方眼睛的颜色。小岛上没有一面镜子,也没有可以反射自己容貌的物体。因此,没有任何人能够得知自己眼睛的颜色。出于这些原因,每个和尚都过着幸福的日子,也没有一个和尚自杀。
有一天,岛上突然来了一位游客,她对这个秘密并不知情。于是,这位游客对和尚们说:
“你们当中,至少有一位的眼睛是红色的。”
这位无心的游客当天就离岛而去,而和尚们却因第一次听到有关眼睛颜色的话题而惴惴不安。当晚,小岛上开始出现了可怕的事情,究竟是什么事呢?
思考
此题不简单却非常有意思,而一旦知道答案,又会觉得并不太难。这并非是那种荒谬的问题,要想解开需要一些逻辑推理,所以不要试图一下子解开。我们应当从最简单的线索着手,进行一些最简单的假设,然后逐步推理。如果各位已经知道答案,那就暂且不论;如果是不知道答案的读者,请先用2分钟时间独立思考。在此重申,解决这种谜题类问题的过程与实际编程中寻找适当算法的过程非常类似。
if ( ( 思考时间 > 2分钟) || ( 已经知道答案了吗) ) { 跳转至下一段 } else { 返回上一段,并至少思考2分钟 }
答案
下面查看正确答案。游客说“至少有一个人”的眼睛是红色的。1.假设岛上的和尚中没有任何人的眼睛是红色,那么会怎样呢?
这种情况虽然最简单,但会产生最严重的后果。若没有一个和尚的眼睛是红色的,那么对他们来说,除了自己以外,看到的其他和尚的眼睛都是褐色。因此,每个和尚都会认为自己的眼睛是红色的(实际上是褐色)。可想而知,所有和尚当晚都会自杀。
2.如果只有一名和尚的眼睛是红色的,会出现什么结果呢?
除了这名和尚外,其余和尚都知道谁的眼睛是红色的,那么这些褐色眼睛的和尚当然不会自杀。而那位红眼和尚因看到其他和尚的眼睛都是褐色的,就会判断出自己眼睛的颜色,进而选择自杀。
接下来再考虑稍微复杂一些的情况。
3.假如有两个红眼和尚,会有什么样的结果呢?
现在开始的推理是为了得到本题答案而进行的核心推理部分。(开始时没
4000
有考虑过这种情况的读者,现在请仔细思考:若有两个红眼和尚,会发生什么样的事情?)游客说“至少有一个”和尚的眼睛是红色的,所以两个红眼和尚都会以为说的是对方。
这两个和尚都会想:“那个红眼的家伙今晚就要自杀喽。”并安然入睡。不过,因为两人都这样想,所以都能看到第二天的太阳。当这两位和尚相互碰面并看到对方没有自杀时,都会受到极大的打击。
此时,二人都会意识到,红眼和尚有两个而非一个,而且另一个正是自己。除此之外的任何情况都不可能让对方在第一个晚上不自杀而安然入睡。结果,受到打击的两个和尚会在第二天晚上都悲惨死去。
下面再考虑更加复杂的情况。
4.如果有3个红眼和尚,又会怎样呢?
平时,这3位会看到两个红眼和尚,所以听到游客的话后,都不会选择自杀。第一晚过后,他们又会想,另外两个和尚(红色眼睛)第二天晚上会同时自杀(根据前面探讨的“有两个红眼和尚”的情况)。像这样,这3个红眼和尚都会认为另外两个红眼和尚会同时自杀,而根本不会想到自己也是个红眼和尚。
到了第三天早上,看到本以为会自杀的另两个和尚并没有自杀时,根本没想到自己也是红眼和尚的这3人会同时受到极大的打击。因为,两个红眼和尚第二天晚上也没有自杀,这就表明还有一个红眼和尚,而这第三个红眼和尚正是自己。(除两个红眼和尚之外,他们平时看到其他和尚的眼睛都是褐色的。)
5.这种逻辑会反复循环。
因此,该题的答案是“若小岛上共有n个红眼和尚,那么第n个晚上这些和尚会同时自杀”。例如,小岛上共有5个红眼和尚,那么第5个晚上,这5个红眼和尚会同时自杀。
实现算法的过程与猜谜语非常相似,无论编写算法还是猜谜语,首先都需要掌握问题本身的意思。其次需要了解开始解题的第一个步骤,就像是在看不见路的地方捕捉线索,以获知前进的方向。了解第一个步骤后,接下来就需要一步一步向着问题的最终答案前进。
相关文章推荐
- 一个很有趣的问题,自认为大虾的可以看看
- 我写了一个高并发的BlockingQueue,有兴趣的可以看看
- 今天做了一个小游戏 猜拳游戏 大家可以看看玩玩
- 推荐一个博客,大家可以看看里面的科技板块内容
- 分享一个控制台版本《推箱子》小游戏,感兴趣的可以看看
- 一个开发在线工具网,没事可以看看
- 一个汇编语言的学生管理(当时没有做成功,现在也懒得改了,可以随便看看)
- 写了一个整人程序,较简单,有兴趣者可以看看
- 发现一个挺不错的免费空间,对做网站有兴趣的可以看看
- c语言程序的一个错误,需要注意下的,大家都可以看看哦
- 一个超有趣的变色龙智力题
- 介绍一个python的开源项目,有兴趣可以看看
- MyPage从Page派生,MyPage总有一个Label控件。以便以后从MyPage派生的页都可以直接使用Label?给个代码例子看看?
- 一个关于设计模式的网站。喜欢的大家可以上去看看
- 用C++制作一个简单的文字游戏,纯属C++入门,有兴趣的可以看看
- 一个可以看看的blog
- 这段时间开发了一个共享软件,主要做IP资源管理的(SmartIPView),大家有兴趣可以看看,或给指点指点
- 写了一个整人程序,较简单,有兴趣者可以看看
- 【java基础】随手写的一个日期计算,新手可以看看
- 发布一个截图小工具,显示器比较小的CODER可以进来看看。。