关于上帝、恶魔和人类的推断问题

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

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

  下面是我的思路。

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

原文地址:https://www.cnblogs.com/xupengzhuo/p/1996287.html