有两扇门,一扇后面是诱人的offer,一扇后面是淘汰,两扇门均有一个门卫把守,一个门卫只说真话,另一个门卫只说假话,只能问其中一个门卫一个问题,怎样问才能找到通往offer之门呢?
- 假如说真话的守卫站在通往offer的门口,如下图。
如果你随便找一个守卫问“你的门后是offer,对吗?”或者“对方的门后是offer,对吗?”或者“对方说你这个是通往offer之门,对吗?”,这个时候两个守卫的答案都是相同的,无法区分出有offer的门。
分析一下上面的三种问法,我们会发现问题的背后都只有一个守卫在参与,我们都是给出了一个确切的结论让一个守卫去判断真假,可见这条路是行不通的。
有什么问法让两个守卫都能参与进来呢?这里非常考验人的逻辑推理能力。
你可以这样问“对方会说你这个是通往offer之门,对吗?”,这个问题没有给明确结论让这个守卫来判断真假,而是给出了一个不确切的问题,让这个守卫来回答。
这个时候如果你问的是说真话的守卫,他守的是offer之门,对方是说假话的,对方肯定不会说他守的是offer之门,所以说真话的守卫会说不对。 同理如果你问的是说假话的守卫,他守的是淘汰之门,对方是是说真话的,对方不会说他守的是offer之门,所以说假话的守卫会说对。
不同的守卫得到的答案是不同的,这个时候当守卫回答对的时候我们就选对方的门,当守卫说不对的时候我们就选这个守卫的门。
- 还有一种情况,说真话的守卫站在通往淘汰的门口,如下图。
同理,我们依然问“对方会说你这个是通往offer之门,对吗?”,如果问的数说假话的守卫,他会说不对。如果问的是说真话的守卫,他会说对。
这个时候依然是当守卫回答对的时候我们就选对方的门,当守卫说不对的时候我们就选这个守卫的门。
综上两种情况,随便找一个守卫问“对方会说你这个是通往offer之门,对吗?”,当守卫回答对的时候我们就选对方的门,当守卫说不对的时候我们就选这个守卫的门。
这个问题的关键其实就是让两个守卫都参与进来,互相预判对方的预判,而不是只让一个守卫回答确切的问题。当然问法也不是固定的,只要能满足这种条件的都可以。