zoukankan      html  css  js  c++  java
  • 关于上帝、恶魔和人类的推断问题

      今天中午某技术群里有个同学给出了一到逻辑推理题,看上去蛮好玩,我便尝试着的去做了一下,没有多久便还真做出来了。题目如下:

    在你面前分别是:上帝、魔鬼和人类,从外表无法区别它们,上帝无所不知且只说真话;恶魔无所不知且只说假话;人类知道一些事情且有时候说真话有时候说假话。给你问他们3个问题的机会,问的时候只能向其中一个问,问完后可以选择其他的问,也可以选择只问同一个,怎样才能区分它们的身份,并且他们回答问题的时候只能是“是”或者“否”。

      下面是我的思路。

    通过题目给出的条件可知,你每一个问题向某个对象提出之前,你都是不知道他的身份的,再加上有人类这个“坏孩子”在这里作祟,我们如果问同一个人两次问题是很不明智的。那么我们先要做的就是把恶魔或者上帝给找出来。我的办法是,利用一个连人类都知道的客观事实(不要忘记我们作为提问者本身也是人类哦),花费两个问题的机会问两个不同的人,我们可以把——两个回答为“是”的人和恶魔被区分开来或者两个回答为“否”的人和上帝区分开来。先考虑第一种我知道恶魔是谁的情况,我会随便指着那两个之前回答“是”的人中的一个问,他不是上帝,对吗?这样,我们就可以把人类和上帝的身份搞清楚了。第二种情况就更简单了,直接问,谁是恶魔。

  • 相关阅读:
    Electron应用打包、自动升级
    使用javascript处理nginx的请求
    使用Electron开发桌面应用
    VSCode、VBox搭建C/C++开发环境
    树莓派搭建Nexus2私服
    Tom猫小游戏功能实现
    如何配置webpack让浏览器自动补全前缀
    git 常用操作
    数组的一些常用操作
    ES6 的模块化
  • 原文地址:https://www.cnblogs.com/xupengzhuo/p/1996287.html
Copyright © 2011-2022 走看看