书城教材教辅头脑充电大本营
10751800000140

第140章 精灵的语言

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

[答案:向A问第一个问题:

如果我问你以下两个问题:“Da表示‘对’吗”和“如果我问你以下两个问题:‘你说真话吗’和‘B随机答话吗’,你的回答是一样的,对吗”,你的回答是一样的,对吗?

如果A说真话或说假话并且回答是Da,那么B是随机答话的,从而C是说真话或说假话;

如果A是说真话或说假话并且回答是Ja,那么B不是随机答话的,从而B是说真话或说假话;

如果A是随机答话的,那么B和C都不是随机答话的!

所以无论A是谁,如果他的答案是Da,C说真话或说假话;如果他的答案是Ja,B说真话或说假话。

不妨设B是说真话或说假话。

向B问第二个问题:

如果我问你以下两个问题:“Da表示‘对’吗”和“罗马在意大利吗”,你的回答是一样的,对吗?

如果B是说真话的,他会回答Da;如果B是说假话的,他会回答Ja。从而我们可以确认B是说真话的还是说假话的。

向B问第三个问题:

如果我问你以下两个问题:“Da表示‘对’吗”和“A是随机回答吗”,你的回答是一样的,对吗?

假设B是说真话的,如果他的回答是Da,那么A是随机回答的,从而C是说假话的;如果他的回答是Ja,那么C是随机回答的,从而A是说假话的。

假设B是说假话的,如果他的回答是Da,那么A是不是随机回答的,从而C是随机回答,A是说真话的;如果他的回答是Ja,那么A是随机回答的,从而C是说真话的。]