A、B、C三人都可以看见其余两人额头上的牌,看完后让他们猜自己额头上是什么颜色的牌,
A说不知道,B说不知道,C说不知道,然后A说知道了。
请教如何推理,A是怎么知道的。
如果用程序,又怎么实现呢?
思路:目的是推导出A的颜色,由于A先看B、C,则应先假定B、C的颜色然后推导A
分析:头上可能出现的牌为 bb、rr、rb(blue 、red)
A:不知道 说明 B 、C中颜色相加没有等于4的牌
B:不知道 说明 A、C中颜色相加没有等于4的牌
C:不知道 说明 A、B中颜色相加没有等于4的牌
过程:1> B:rr(bb) C:rr(bb) A肯定知道,所以不符合要求
2>
B:rr(bb) C:bb(rr) A不知道,由于B不知道,C不知道 所以A只能取 rb
3> B:rr C:rb C不知道->A不是rr A若是bb ->C根据A、B判断可以知道自己为rb,但C不知道,所以排除bb A=rb
B:bb C:rb 同理可证A=rb
B:rb C:rr 同理可证A=rb
B:rb C:bb 同理可证A=rb(若A=bb,三个人都说完不知道后,应该B知道了。。)
4> B:rb C:rb 如果A=rr B=rb C猜如果自己=bb 则B不可能不知道自己为rb 所以C可以猜到C=rb
如果A=bb B=rb 同理C可以猜到自己=rb
由于A排除了rr bb 所以只能取 A=rb
结论:不能同时存在rr和bb,A不能是rr和bb