算法最优解 算法最优解
首页
目录
赞助
GitHub (opens new window)
首页
目录
赞助
GitHub (opens new window)
  • 数据结构基础

  • 数组

  • 位运算

  • 动态规划

  • 图

  • 区间

  • 链表

  • 矩阵

  • 字符串

  • 树

  • 堆

  • 逻辑思维

    • 赛马
    • 土匪也疯狂
    • 使用rand5实现rand7
    • 三门问题
    • 狼爱上羊?
    • 会玩的一家人
    • 烧绳子
    • 有问题的球
    • 蛋蛋破碎的临界点
    • 通往offer之门
      • 题目描述
      • 思路解析
    • 最后的颜色
    • 贴标签
  • 目录
  • 逻辑思维
华南溜达虎
2024-07-08
目录

通往offer之门

# 通往offer之门

# 题目描述

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

# 思路解析

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

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

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

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

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

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

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

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

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

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

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

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

上次更新: 2024/07/08, 20:31:33
蛋蛋破碎的临界点
最后的颜色

← 蛋蛋破碎的临界点 最后的颜色→

Theme by Vdoing | Copyright © 2024-2024 华南溜达虎 | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式