既然他们用人类语言回答,问题便相对简单了。为方便讨论,假设三位精灵以左边、中间、右边一行排开。
首先我要引入一种迫假话精灵说真话的方法。假如我真接问眼前的精灵(不知是那一位)命题 P 是否正确,我有可能会得要一个谎话,因为那个精灵可能是假话精灵或者丙精灵。我要做的事,就是先将命题 P 转换成以下一个命题 Q:
Q = (P and 你是真话精灵) or (not P and 你是假话精灵)
如果眼前的是丙精灵,那么他回答什么根本一点影响都没有哦。如果他是真话精灵或者假话精灵,他对命题 Q 回答 Yes 当且仅当原来的命题 P 为真。即是说,透过这种命题转换,我可以迫到假话精灵说真话(当然真话精灵仍然继续说真话)。明白了「迫真话法」之后,其实问题很容易解决。首先用迫真话法问左边的精灵,问他中间的精灵是否是丙精灵。由于用了迫真话法,所以我知样要么他是丙精灵,要么那个回答必然是真话。如果回答是 Yes,我可以肯定到右边的不是丙精灵。(即是说,只要我用迫真话法问他问题,必然得到真话答案。)对他用一次迫真话法便可知道他是那个精灵,知道之后再问多他一条问题便知道那个是丙精灵。如果第一个问题的回答是 No,做法基本上一样,唯一不同的是今次我们知道中间的精灵不是丙精灵。(之后用迫真话法问他问题便可以。)嗯嗯嗯这样