21 12
发新话题
打印

上帝魔鬼凡人--很老的经典的逻辑题

上帝魔鬼凡人--很老的经典的逻辑题

有三个“人“站在你面前,已知其中一个是上帝,他全知全能,且永远讲真话;一个是魔鬼,他也全知全能,但永远讲假话;还有一个是凡人,他不全知也不全能,可能讲假话也可能讲真话,(就是说,他的回答对你毫无参考价值)。现在你可以向他们问至多三个问题,但只能是一般疑问句(也就是只回答是或不是),每个问题都只能问其中的一个人,但可以问同一个人不止一个问题。请设计这些问题,用以分辨出他们谁是谁。
请用最清晰的逻辑描述回答。

[ 本帖最后由 jolestar 于 2008-7-6 10:12 编辑 ]

TOP

得先想办法把上帝找到,上帝傻,永远说真话

TOP

问“我说的话是假话”这句话是真是假?

瞬间答出来的是魔鬼,怎么也答不出来的是上帝,剩下的那个是人~~

这么回答行不??

TOP

怎么也答不出来的应该是魔鬼吧?

TOP

这个题有BUG啊,因为有个“凡人”怎么也分不出“上帝”和“魔鬼”!

TOP

应该没BUG,听说是哪个公司的面试题

TOP

这么回答就可以了,假设3人为A , B ,C
问A: C是凡人吗?
问B: A是上帝吗?
问C: B是魔鬼吗?

因为其中至少会有一个人说真话,所以推论到最后会有矛盾,就可以知道各自都是谁了!

TOP

问A:1.B是凡人吗?2.C是凡人吗?
一、如果A回答两个都是,那么A是凡人,再问C,A是凡人吗?如果回答是,则C是上帝,否则C是魔鬼。
二、如果A回答两个都不是,则A是凡人,同上。
三、如果A回答1是2不是
a.假设A是凡人,B是上帝,符合
b.假设A是凡人,B是魔鬼,符合
c.假设A是上帝,B是凡人,此时A的回答应该是1是2不是,符合
d.假设A是上帝,B是魔鬼,此时A的回答应该是1不是2是,此种情况排除
e.假设A是魔鬼,B是凡人,此时A的回答应该是1不是2是,此种情况排除
f.假设A是魔鬼,B是上帝,但此时A的回答应该是1是2也是,此种情况排除
问C:A是凡人吗?
如果C的答案为“是”:
a.假设A是凡人,B是上帝,则C应回答否,排除
b.假设A是凡人,B是魔鬼,则C应回答是,符合
c.假设A是上帝,B是凡人,则C应回答是,符合
如果C的答案为“否”
a.假设A是凡人,B是上帝,则C应回答否,符合
b.假设A是凡人,B是魔鬼,则C应回答是,排除
c.假设A是上帝,B是凡人,则C应回答是,排除
所以当A回答1是2不是,如果C回答是,则A是上帝,B是凡人,C是魔鬼或A是凡人,B是魔鬼,C是上帝,如果C回答否,则A是凡人,B是上帝,C是魔鬼

当A回答1不是2是的时候情况和上面类似
只能推到这儿了,有一种情况还是不能得到唯一的答案

TOP

从别处摘来的一个答案
    第一个问题还是一样问1+1是不是等于3
    现在可能出现2种情况,我先分析第一种
    上帝回答不是,魔鬼回答是,凡人回答是
    这样我们就可以确定回答不是的那个肯定是上帝
    
    第二个问题问上帝,"他"是不是凡人,因为上帝无所不知,他一定知道谁是凡人,那如果上帝回答是,就说明他是,如果回答不是,说明是魔鬼,那这样就能辨别出来
    
    现在说第2种情况
    1+1是不是等于3
    上帝回答不是,魔鬼回答是,凡人回答不是
    那这样能确认回答是的肯定是魔鬼
    
    再问魔鬼,"他"是不是上帝,如果真的是上帝,魔鬼一定回答不是,如果不是,魔鬼一定回答是,那么身份也能确认

如果问这样已经答案的问题,似乎还真用两个问题就可以搞定了

TOP

该答案第一个问题问了三个人,不符合要求

TOP

很好很详细,呵呵

TOP

有意思,很适合程序员的题目.

TOP

太简单了!问个一加一等于二吗?不就得了

TOP

引用:
原帖由 zhymwbx 于 2008-6-28 10:59 发表
太简单了!问个一加一等于二吗?不就得了
凡人有可能不知道一加一等于几的。

TOP

关键是不符合规则啊!
一次只能问一个人一个或多个问题啊

TOP

 21 12
发新话题