帽子问题又称帽子颜色问题,是比较经典而又非常有趣的逻辑题之一。
下面是一个经典的问题及答案。
有3顶红帽子和2顶白帽子。现在将其中3顶给排成一列纵队的3个人,每人戴上1顶,每个人都只能看到自己前面的人的帽子,而看不到自己和后面的人的帽子。同时,3个人也不知道剩下的2顶帽子的颜色(但都知道他们3个人的帽子是从3顶红帽子、2顶白帽子中取出的)。
这时,有人分别问这3个人是否知道自己戴的帽子的颜色。先问了站在最后边的人,他说不知道。接着又让中间的人说出自己戴的帽子的颜色,这个人虽然听到了后边那人的回答,但仍然说不出自己戴的是什么颜色的帽子。听了他们两人的回答后,最前面的人等别人刚问完,便答出了自己帽子的颜色。
请问最后回答的人怎么知道了自己帽子的颜色?他的帽子又是什么颜色的呢?
答案: 首先假设从前到后的3个人分别为甲、乙、丙。丙看了甲、乙戴的帽子说不知道,说明甲、乙不可能都戴了白帽子,因为只有2顶白帽子,如果甲、乙都戴了白帽子,丙一定知道自己戴了红帽子。同理,乙又说不知道,说明甲戴的不是白帽子,因为乙根据丙的回答和甲戴的帽子,无法判断出自己戴的是那种帽子,如果甲戴的是白帽子,那么他肯定知道自己戴的是红帽子。如此一来,甲戴的肯定是红帽子,因此,甲经过逻辑推理就知道自己戴的是红帽子。
类似这种猜帽子颜色的问题还有很多,都是由此变形扩展而来的。此类问题可以很好地锻炼我们的逻辑思维能力,尤其是及时对信息进行汇集与整理,这在我们的思维过程中是非常重要的。此类问题的解题关键在于要弄清楚别人是如何想这类问题的,并懂得如果别人回答不知道时能推导出哪些结论,等等。
以上问题可以推广成如下形式。
“有若干颜色的帽子,每种颜色的又有多顶。假设有多个人从前到后站成一排,让他们每个人戴一顶帽子。每个人都看不见自己戴的帽子的颜色,而且每个人都看得见在他前面的所有人戴的帽子的颜色,却看不见他自己和后面的任何人戴的帽子的颜色。现在从最后那个人开始,问他是不是知道自己戴的帽子的颜色,如果他回答不知道,就继续问他前面那个人。一直往前问,那么一定有一个人知道自己所戴帽子的颜色。”
要想使该题目有解,还要满足以下这些特定的条件。
(1)帽子的总数一定要大于人数,否则帽子不够戴。当然,数字也要设置得合理,帽子比人数多得太多,或者队伍里只有一个人,那他是不可能说出自己戴的帽子的颜色的。
(2)应该一共有多少种颜色的帽子,每种有多少顶,有多少人,这些基本信息是队列中所有人都事先知道的。
(3)剩下的没人戴的帽子都被藏了起来,队伍里的人谁也不知道剩下了哪些颜色的帽子。
(4)他们的视力都很好,能看到前方任意远的地方,也不存在被谁挡住的问题。而且所有人都不是色盲,可以清楚地分辨颜色。
(5)不能作弊,后面的人不能和前面的人说悄悄话或者打暗号。
(6)他们每个人都足够聪明,逻辑推理能力都是极好的。只要理论上根据逻辑可以推导出来结论,他们就一定能够推导出来。相反,如果他们推不出自己头上帽子的颜色,只会诚实地回答“不知道”,绝不会乱说,或者试图去猜。
举一个例子:假设现在有 n 顶黑帽子, n -1顶白帽子, n 个人( n >0)。
排好队伍并戴好帽子之后,问排在队伍最后面的人头上的帽子是什么颜色时,在什么情况下他会回答“知道”?很显然,当他前面的所有人( n- 1人)都戴着白帽子的时候,因为 n- 1顶白帽子用完了,自己只能戴黑帽子。只要前面至少有一个人戴着黑帽子,他就无法知道自己头上帽子的颜色。
现在假设最后一个人回答“不知道”,那么我们开始问倒数第二个人。根据最后一个人的回答,倒数第二个人同样可以推理出上面的结论,即包括自己在内的前面所有人至少有一个人戴着黑帽子。如果他看到前面的人戴的都是白帽子,那么很显然,自己戴的必定是黑帽子;如果他看到前面仍然至少有一个人戴着黑帽子,那么他的回答必定还是“不知道”。
这个推理过程可以一直持续下去。当某一个人(除了最前面的一个)看到前面所有人都戴着白帽子时,他的回答就应该是“知道”;如果到了第二个人依然回答“不知道”,那么说明第二个人看到的还是一顶黑帽子,此时最前面的人就可以知道自己戴的帽子的颜色了。
除了队列最前面的一个人外,其余每个人的推理都是建立在他后面那些人的推理之上的。当一个人断定某种颜色的帽子一定在队列中出现,而他身后的所有人都回答“不知道”,即这些人都看见了这种颜色的帽子,但他却看不到这种颜色的帽子时,那么一定是这个人戴着这种颜色的帽子。这就是帽子颜色问题的关键!