逻辑难题-问路

问题

‍A国只有两种人,一种永远说真话,一种永远说假话,你来到A国,到了二叉路口不知道哪条道通向首都,路口有这个国家的一个守卫人员(A国人),你只能问一个问题,守卫只回答是或不是,请问怎样问才能确定哪条路是通往首都的路?

答案

(你指向一条路,问他)如果我问你“这条路是去首都的路吗”,你会回答“是”,是不是?

分析

令p为守卫人员是永远说真话的人,那么非p就是永远说真话的人

情况1

假设你指的路是去首都的路,你遇到的人是p,那么你问得去首都的路他应该回答是,所以他回答你的问题“你会回答是”是一致的,所以他会回答是。

情况2

假设你指的路是去首都的路,你遇到的人是非p,那么你问得去首都的路他应该回答不是,所以他回答你的问题“你会回答是”是不一致的,因为他是永远说假话的人,所以他会回答是,因为如果回答不是的话。他就说真话了,所以他要说假话是。

情况3

假设你指的路不是去首都的路,你遇到的人是p,那么你问得去首都的路他应该回答不是,所以他回答你的问题“你会回答是”是不一致的,所以他会回答不是。

情况4

假设你指的路不是去首都的路,你遇到的人是非p,那么你问得去首都的路他应该回答是,所以他回答你的问题“你会回答是”是一致的,但是由于他是永远说假话的人,所以他要回答不是。

结论

这样基于情况1和2,情况3和4,就可以得到回答是的话就代表你指的路是去首都的路,回答不是则你另一条路是去首都的路。这样问一个问题就确定了去首都的路。

上一篇:事务与事务隔离级别-MySQL


下一篇:架构模式-事件驱动架构-代理者拓扑