将其中的三顶帽子分别戴在A、B、C三人头上。这三人每人都只看见其他两人头上的帽子,但看不见自己头上戴的帽子,并且不知道剩余的两顶帽子的颜色。
问A:“你戴的是什么颜色的帽子?”
A回答说:“不知道。”
接着,又以同样的问题问B。
B想想之后,也回答说:“不知道。”
最后问C。
C回答说:“我知道我戴的帽子是什么颜色了。”
当然,C是在听了A、B的回答之后而作出回答的。
刚拿到这个问题时候确实有点不知所措:靠想是不行的!
拿笔画几下吧!!
拿A开刀吧:
如果A是红色:
A看到后不知:说明B,C至少有一个是红色,情况如下:
A B C
红 红 白
红 白 红
红 红 红
C在想:你A不知,那我和B至少有一个红色,你A带的红色,如果我带的是白色,这B不就知道了嘛,看来我带的是红色呀(这里有个问题:如果B带的是白色,那么C只要听了A的回答就够了,需不需要kou这个“C是在听了A、B的回答之后而作出回答的”字眼)
所以:A是红色时(这里按:C还要听B的回答)
A B C
红 红 红
如果A是白色:
前部分的分析同上:
A看到后不知:说明B,C至少有一个是红色,
C在想:你A不知,那我和B至少有一个红色,你A带的白色,如果我带的是白色,这B不就知道了嘛,看来我带的是红色呀
再来看B:A是白色,如果B是白色,C就不用听A和B的回答
所以:A是白色时
A B C
白 红 红
综上:A-->B,C至少有一个红色-->如果B为白,C不用听B的回答;如果C为白,B可以知道-->B,C均为红色
A B C
红 红 红
白 红 红
验算了一下,好像大概可能也许没有问题。(可能有些条件还没考虑到,望大家指正)
(后续可能会出该问题的Python编程实现)