Skip to content

Latest commit

 

History

History
42 lines (20 loc) · 2.8 KB

010.通往offer之门.md

File metadata and controls

42 lines (20 loc) · 2.8 KB

通往offer之门

题目描述

有两扇门,一扇后面是诱人的offer,一扇后面是淘汰,两扇门均有一个门卫把守,一个门卫只说真话,另一个门卫只说假话,只能问其中一个门卫一个问题,怎样问才能找到通往offer之门呢?

思路解析

  1. 假如说真话的守卫站在通往offer的门口,如下图。

如果你随便找一个守卫问“你的门后是offer,对吗?”或者“对方的门后是offer,对吗?”或者“对方说你这个是通往offer之门,对吗?”,这个时候两个守卫的答案都是相同的,无法区分出有offer的门。

分析一下上面的三种问法,我们会发现问题的背后都只有一个守卫在参与,我们都是给出了一个确切的结论让一个守卫去判断真假,可见这条路是行不通的。

有什么问法让两个守卫都能参与进来呢?这里非常考验人的逻辑推理能力。

你可以这样问“对方会说你这个是通往offer之门,对吗?”,这个问题没有给明确结论让这个守卫来判断真假,而是给出了一个不确切的问题,让这个守卫来回答。

这个时候如果你问的是说真话的守卫,他守的是offer之门,对方是说假话的,对方肯定不会说他守的是offer之门,所以说真话的守卫会说不对。 同理如果你问的是说假话的守卫,他守的是淘汰之门,对方是是说真话的,对方不会说他守的是offer之门,所以说假话的守卫会说对。

不同的守卫得到的答案是不同的,这个时候当守卫回答对的时候我们就选对方的门,当守卫说不对的时候我们就选这个守卫的门。

  1. 还有一种情况,说真话的守卫站在通往淘汰的门口,如下图。

同理,我们依然问“对方会说你这个是通往offer之门,对吗?”,如果问的数说假话的守卫,他会说不对。如果问的是说真话的守卫,他会说对。

这个时候依然是当守卫回答对的时候我们就选对方的门,当守卫说不对的时候我们就选这个守卫的门。

综上两种情况,随便找一个守卫问“对方会说你这个是通往offer之门,对吗?”,当守卫回答对的时候我们就选对方的门,当守卫说不对的时候我们就选这个守卫的门。

这个问题的关键其实就是让两个守卫都参与进来,互相预判对方的预判,而不是只让一个守卫回答确切的问题。当然问法也不是固定的,只要能满足这种条件的都可以。