正文
额滴神呐:在最难逻辑谜题中,你得判断真、伪、任性三位大神的真实身份。
Boolos 的解法中首先声明的一点是:不要像我上面那样,先脑子里想好,然后一次性抛出所有问题。你的第一个任务是想出一个问题,确定谁一定不是任性之神,或者谁只能是真之神或伪之神。这样你就可以通过排除法确定谁是任性之神,一旦确定了任性之神的身份,剩下的问题就迎刃而解了。
为了更好地理解这种方法,Boolos 给了我们三个简化版例子。
这个例子其实就是 Smullyan《这本书的书名是什么?》中经典的
“骑士和流氓问题”
:骑士只说真话,流氓只说假话,如何只提一个是非问题,根据他们的回答确定两人身份?
在解决这个问题之前,不妨设想这样的场景:
假设你不清楚冥王星是不是矮行星,决定向周围的人咨询,但又不知道对方到底是骑士还是流氓,要怎样问才能确定冥王星是否为矮行星呢?
Boolo 解释说,你得下个套向他们套出你想要的答案。这个套路就是用“当且仅当”的双重条件提问。
当你用当且仅当“把两个同真或同假的句子联系在一起,这句话一定是真的;但是如果这两个句子一真一假,这就是句假话。”
“当且仅当”就像乘号一样,同正或同负的两数相乘总得到正的结果,而在两句同真或同假的情况下你得到的答案永远是真的。
现在这个情景下就是:
“当且仅当冥王星是矮行星时,你是骑士吗?”
(译者注:不习惯使用“当且仅当”的同学,可以这样理解:冥王星是矮行星,你是骑士,这两个命题的真假相同吗?)
听你提问的人要么是骑士、要么是流氓,得到的回答共有四种可能:
如果这个人是骑士,冥王星是矮行星,那么答复是“是”;因为“当且仅当”联系的两句话都是真的,而骑士总是说真话。
如果这个人是骑士,冥王星不是矮行星,那么答复是“否”;因为问题中包含一句错话。
如果这个人是流氓,冥王星是矮行星,那么答复是“是”;因为流氓总说谎,正确的答案应该是“否”。
如果这个人是流氓,冥王星不是矮行星,那么答复是“否”,因为正确的答案是“是”。
身份/冥王星
|
是矮行星
|
不是矮行星
|
骑士
|
是
|
否
|
流氓
|
是
|
否
|
看看我们得到了什么结果:使用双重条件句提问,就一定能得到我们想要的信息。
如果冥王星是矮行星,得到的回答就是“是”,否则就是“否”
。
但是要注意,“史上最难逻辑谜题”与“骑士和流氓”有所不同——你听不懂他们的答复。
在这个例子里,
你知道自己在询问只说真话的骑士,但是他只能用“哒”或“呀”回复你。
这种情况下,你要通过怎样一个是非问题判断出冥王星是否为矮行星呢?