1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 面试逻辑题:三个精灵说真话假话的判断难题

面试逻辑题:三个精灵说真话假话的判断难题

时间:2020-10-29 23:37:06

相关推荐

面试逻辑题:三个精灵说真话假话的判断难题

甲乙丙三个精灵说真话(Da)假话(Ja)和随机选择真假的判断难题

根据已故的麻省理工( MIT )哲学及逻辑家George Boolos,以下的趣味逻辑问题可算是全世界最难的一个。你可以解决这个难题吗?

有甲、乙、丙三个精灵,其中一个只说真话,另外一个只说假话。还有一个随机地决定何时说真话,何时说假话。你可以向这三个精灵发问三条是非题,而 你的任务是从他们的答案找出谁说真话,谁说假话,谁是随机答话。这个难题困难的地方是这些精灵会以“Da”或“Ja”回答,但你并不知道它们的意思,只知 道其中一个字代表“对”,另外一个字代表“错”。你应该问那三条问题呢?

提问如下:

1、 你是说真话的精灵吗?

注意此题会至少有2个精灵的答案是相同的,因为

a 说真话的肯定会到是

b 说假话的因为自己不是说真话的,但不能回答不是,所以也回答是。

OK,

1.1 如果出现了2+1的回答,则那个回答与别人不同的精灵,一定是【随机选择答案的精灵】。

同时,那2个回答多的答案,就是【对】的意思。

我们继续问

1.1.1 你是随机决定何时说真话的精灵吗?

a) 真话的肯定是回答错

b) 说假话的肯定回答对

至此,三个精灵和回答的都知道了答案了。

1.2 如果出现了3个相同的答案,那么这个答案一定为【是】

1.2.1 你是随机决定何时说真话的精灵吗?

a) 说真话的肯定回答【错】

b) 说假话的肯定回答【对】

所以,答案肯定是2+1的结果,不可能有三个相同的结果,因为你已经知道什么答案是【对】,则

如果2个对+1个错,则回答错的那个,一定是【说真话】的精灵

1.2.1.1 则随便选一个,问【说真话】的精灵,这个是不是说假话的精灵。

如果是,则那个一定是【说假话】的那个,剩下的一个一定是【随机选择答案】的

如果否,则那个一定是【随机选择答案】的那个,剩下的一个是【说假话】的。

如果2个错+1个对,则回答对的那个,一定是【说假话】的精灵。

1.2.1.2 则随便选一个,问【说假话】的那个,这个是不是说真话的精灵

如果是,则那个一定是【随机选择答案】的那个,剩下的一个一定是【说真话】的

如果否,则那个一定是【说真话】的那个,剩下的一个是【随机选择答案】的。

至此,搞定。

看更多的JAVA面试题和一些逻辑面试题,请到

/f146

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。