一道逻辑推理题目

给LZ和LS的一道题吧有甲、乙、丙三个精灵,其中一个只说真话,另外一个只说假话。还有一个随机地决定何时说真话,何时说假话。你可以向这三个精灵发问三条是非题(注:每个问题只... 给LZ和LS的一道题吧

有甲、乙、丙三个精灵,其中一个只说真话,另外一个只说假话。还有一个随机地决定何时说真话,何时说假话。你可以向这三个精灵发问三条是非题(注:每个问题只问一个精灵, 可以三个问题都问同一个精灵),而你的任务是从他们的答案找出谁说真话,谁说假话,谁是随机答话。这个难题困难的地方是这些精灵会以“Da”或“Ja”回答,但你并不知道它们的意思,只知道其中一个字代表“对”,另外一个字代表“错”。你应该问那三条问题呢?
这道逻辑题是专家Raymond Smullyan出的,自封为“世界最难逻辑题”,说除他之外无人解答出来
展开
linboll_l
2007-02-11 · TA获得超过5910个赞
知道小有建树答主
回答量:775
采纳率:0%
帮助的人:1143万
展开全部
这个问题最难的地方是我们不懂精灵的语言。除了不知那是真话还是假话之外,连那个回答是 Yes 还是 No 都不知道。我们都可以首先简化问题:可以不失一般性地假设三位精灵用人类语言(Yes or No)去回答。为什么可以这样假设呢?理由如下。

当我想问某位精灵命题 P 是否正确时,我不会直接去问,我会先将命题 P 转换成以下命题 Q。
Q = (P and (Da 代表 Yes)) or (not P and (Ja 代表 Yes))

如果面前的是精灵丙,他的答案是什么对推理根本就无影响。如果面前的是真话精灵或者假话精灵,它对命题 P 以人类语言的回答是 Yes 当且仅当他对命题 Q 的回答是 Da。(将所有情况列出来逐一考虑便会知道。)透过这种命题转换,我们可以一开始便假设 Da 代表 Yes,或者直接假设他们会用人类语言回答。

现在假设他们会用人类语言回答
既然他们用人类语言回答,问题便相对简单了。为方便讨论,假设三位精灵以左边、中间、右边一行排开。

首先我要引入一种迫假话精灵说真话的方法。假如我真接问眼前的精灵(不知是那一位)命题 P 是否正确,我有可能会得要一个谎话,因为那个精灵可能是假话精灵或者丙精灵。我要做的事,就是先将命题 P 转换成以下一个命题 Q:
Q = (P and 你是真话精灵) or (not P and 你是假话精灵)

如果眼前的是丙精灵,那么他回答什么根本一点影响都没有。如果他是真话精灵或者假话精灵,他对命题 Q 回答 Yes 当且仅当原来的命题 P 为真。即是说,透过这种命题转换,我可以迫到假话精灵说真话(当然真话精灵仍然继续说真话)。明白了「迫真话法」之后,其实问题很容易解决。首先用迫真话法问左边的精灵,问他中间的精灵是否是丙精灵。由于用了迫真话法,所以我知样要么他是丙精灵,要么那个回答必然是真话。如果回答是 Yes,我可以肯定到右边的不是丙精灵。(即是说,只要我用迫真话法问他问题,必然得到真话答案。)对他用一次迫真话法便可知道他是那个精灵,知道之后再问多他一条问题便知道那个是丙精灵。如果第一个问题的回答是 No,做法基本上一样,唯一不同的是今次我们知道中间的精灵不是丙精灵。(之后用迫真话法问他问题便可以。)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式