史上最难逻辑题!据说99.9%的人都做不出来……
撰文 BRIAN GALLAGHER
翻译 徐付琪
审校 杨晨 张士超
本文由微信公众号“科研圈”(ID:keyanquan)授权转载
转载请先联系keyanquan@huanqiukexue.com
1957年,普林斯顿大学博士生 Raymond Smullyan 在一位理论计算机科学创始人的指导下学习。他偶尔会去纽约玩。一次,他在那里遇到了一位“非常迷人的女音乐家”,情场圣手 Smullyan 在他们第一次约会的步调上,可谓非常“逻辑”,撩人于无形。
他说道:“我们来做个游戏吧。我先说一句话,如果那句话是真的,可以把你的签名给我吗?”
女音乐家饶有兴致地回答:“当然。”
“不过如果我说的不是真的,那就不要给我签名了。”
“好的…”
紧接着,他说:“你既不会给我签名也不会给我一个吻。”
稍微想一下儿吧,不过你最后肯定能明白 Smullyan 的机智之处。
按照协议,如果这句话的是对的,女音乐家就要给 Smullyan 签名;但这句话成立本身意味着“她不会给他签名”。而如果这句话若是错的,那么她就要给他签名或是吻。这就是她面临的困境:如果这句话不成立,她就不能给签名。这样,Smullyan 巧妙地运用逻辑学,以一句错误的话赢得了一个吻。(更赢得了美好的爱情:二人后来步入了婚姻殿堂。)
Raymond Smullyan 图片来源:mesosyn.com
Smullyan 喜欢这类逻辑游戏,人们也因为这类逻辑游戏而喜欢他。在休闲数学和逻辑方面,他的书《这本书的书名是什么》(What Is the Name of This Book?)和《嘲弄一只嘲鸫》(To Mock a Mockingbird)不仅激励了人们投身逻辑学研究,同时也改变了数学和逻辑学的教学方式。在他近百年的人生中,96岁高龄的 Smullyan 不仅为现代逻辑学奠定了基础,还是一名出色的钢琴家和魔术师,甚至还写了一些关于道教和象棋的文章。“毋庸置疑,他是逻辑谜题的大师。”他的博士生 Bruce Horowitz 这样评论道。
史上最难逻辑题
至今,哲学家和逻辑学家们仍着迷于 Smullyan 留下的一项宝贵财富——“世界上最难的逻辑谜题”。这一谜题由麻省理工学院的逻辑哲学家 George Boolos 命名。Smullyan的这位同事也是个中好手,热爱一切逻辑学难题。他曾经自我设限,只用单音节词做了一场哥德尔第二不完备定理的讲座,而这条定理,是“现代逻辑学最重要的成果之一”。
史上最难逻辑谜题是这么说的:
有真、伪、任性三位神,真之神只讲真话,伪之神只讲假话,任性之神的话或真或假,完全随机。你要做的是,只通过三个是非问题来确定三者身份,每个问题只能问其中一位神。他们能听懂你讲话,但只会用自己的语言回答,“是”和“否”分别是“哒”和“呀”中的一个,但你不知道对应关系。
看到这道题时,乐于接受挑战的我拿起纸笔,扎进沙发,心想这要不了两个小时就能解这道题。似乎只要一次性提出三个问题,寻找问题对应的答案就好。例如,我向甲询问乙是不是真,向乙询问甲是不是真,然后再问丙自己是不是真。但是几个小时过去了,我几乎试遍了自己能想到的所有问题,都没能成功,我开始理解为什么这道题会被称作“世上最难”了。很显然,我的问题不足以让这三位神告诉我他们的身份。
十分沮丧的我开始上网寻求指导,我发现攀上这一逻辑谜题高峰的大师是 Boolos,他在1996年解决了这一问题。这一问题求解的过程是我看过的最好的逻辑学课程之一。如果你想自己尝试解决这个问题,不妨先不要下拉屏幕。如果你成功的话,我将表示祝贺,如果很不幸没有成功,你可以接着这篇文章,看 Boolos 是怎样解决这一问题的。(译者注:如果只想降低难度,可以一点一点往下看。)
额滴神呐:在最难逻辑谜题中,你得判断真、伪、任性三位大神的真实身份。
Boolos 的解法中首先声明的一点是:不要像我上面那样,先脑子里想好,然后一次性抛出所有问题。你的第一个任务是想出一个问题,确定谁一定不是任性之神,或者谁只能是真之神或伪之神。这样你就可以通过排除法确定谁是任性之神,一旦确定了任性之神的身份,剩下的问题就迎刃而解了。
为了更好地理解这种方法,Boolos 给了我们三个简化版例子。
简化版 I
这个例子其实就是 Smullyan《这本书的书名是什么?》中经典的“骑士和流氓问题”:骑士只说真话,流氓只说假话,如何只提一个是非问题,根据他们的回答确定两人身份?
在解决这个问题之前,不妨设想这样的场景:假设你不清楚冥王星是不是矮行星,决定向周围的人咨询,但又不知道对方到底是骑士还是流氓,要怎样问才能确定冥王星是否为矮行星呢?
Boolo 解释说,你得下个套向他们套出你想要的答案。这个套路就是用“当且仅当”的双重条件提问。当你用当且仅当“把两个同真或同假的句子联系在一起,这句话一定是真的;但是如果这两个句子一真一假,这就是句假话。”“当且仅当”就像乘号一样,同正或同负的两数相乘总得到正的结果,而在两句同真或同假的情况下你得到的答案永远是真的。
现在这个情景下就是:“当且仅当冥王星是矮行星时,你是骑士吗?”
(译者注:不习惯使用“当且仅当”的同学,可以这样理解:冥王星是矮行星,你是骑士,这两个命题的真假相同吗?)
听你提问的人要么是骑士、要么是流氓,得到的回答共有四种可能:
如果这个人是骑士,冥王星是矮行星,那么答复是“是”;因为“当且仅当”联系的两句话都是真的,而骑士总是说真话。
如果这个人是骑士,冥王星不是矮行星,那么答复是“否”;因为问题中包含一句错话。
如果这个人是流氓,冥王星是矮行星,那么答复是“是”;因为流氓总说谎,正确的答案应该是“否”。
如果这个人是流氓,冥王星不是矮行星,那么答复是“否”,因为正确的答案是“是”。
身份/冥王星 | 是矮行星 | 不是矮行星 |
骑士 | 是 | 否 |
流氓 | 是 | 否 |
看看我们得到了什么结果:使用双重条件句提问,就一定能得到我们想要的信息。如果冥王星是矮行星,得到的回答就是“是”,否则就是“否”。
但是要注意,“史上最难逻辑谜题”与“骑士和流氓”有所不同——你听不懂他们的答复。
简化版 II
在这个例子里,你知道自己在询问只说真话的骑士,但是他只能用“哒”或“呀”回复你。这种情况下,你要通过怎样一个是非问题判断出冥王星是否为矮行星呢?
参照上一题的思路,问骑士“当且仅当冥王星是矮行星时,‘哒’是‘是’的意思吗?” 正是这样!即便我们不知道这两个词的含义,但如果冥王星是矮行星的话,你一定会得到“哒”的答复;如果不是则回复为“呀”。上一个例子中,我们不必弄清这个人到底是骑士还是流氓;而在这个例子中,我们也不需要弄清“哒”和“呀”的含义。
按照 Boolos 的说法,“史上最难逻辑题”就是前两个简化版问题和第三个问题的组合。在解决它之前,我们先整合一下前两个问题:
为了判断冥王星是否为矮行星,面对一个不知是骑士还是流氓的人,而且他只会回答“哒”或“呀”,你会怎样提问呢?如果你想的是,既然这是个复合问题,我们不妨用复合的提问方式,那你就想对了。“当且仅当冥王星是矮行星时你是骑士,当且仅当前一句为真时,‘哒’的含义是‘是’吗?”这样,不论你问的是骑士还是流氓,如果冥王星是矮行星,你得到的答复就是“哒”;如果不是,则为“呀”。这种构思巧妙的问题是解开谜题的钥匙。
每个问题的真假都是确定的,不存在模棱两可的情况。
简化版 III
我把三张牌倒扣放在你面前,三张牌背面一样但正面分别是两红一黑,你不清楚它们的顺序,但是我知道。你要指着其中一张牌,问我一个是非问题以确定其中的一张红色牌。如果你指到红牌的话,我就会像骑士一样说真话;如果指到黑牌,我就会效仿任性之神,可能说真话也可能说假话。那么你会指哪里,问什么问题呢?
这个问题看起来似乎更复杂,但事实上完全不是。你只需要随意指一张牌问剩下的两张牌中的一张是否为红色。例如你指向中间的牌,然后问它左侧那张是否为红色。不论中间的牌是不是红色,如果我告诉你“是”的话你选左边,“否”的话选右边,你选的牌都一定是红色的。为什么呢?如果中间是张红牌,那么我回答“是”就说明它左边也是红牌;如果回答“否”,则说明右边是红牌。如果中间是张黑牌,那么“是”或“否”都没有关系,因为此时它的左右都是红牌。所以,不论你指的是不是红牌,只要你要猜的牌不是你所指的牌,你所得到的“是”或“否”,都能帮你确定另一张红牌。
左 | 中 | 右 | 回答 |
红 | 红 | 黑 | 是 |
红 | 黑 | 红 | 是/否 |
黑 | 红 | 红 | 否 |
这种指着一张牌问另一张牌的策略也可以用在“史上最难逻辑谜题”中,找出那个回答或真或假的神。指向一张牌本身也是你提问的一部分,换成文字来说,相当于用指出某位是任性之神的断言,代替了上个复合问题中“冥王星是不是矮行星”的事实提问。这和决定指向哪张牌其实是一样的。谁是任性之神的答案取决于向谁提问,但是这并不重要,向三位神中的任何一位提问都能得到答案。
破解最难题
我们可以向甲神询问乙神是不是任性之神:“当且仅当乙是任性之神时你是真之神,当且仅当前一句为真时‘哒’才可以理解成‘是’吗?”你同样也可以指着乙神而问甲神的身份。在第三个例子里,不管回答如实还是随机,你都可以根据“是”或者“非”来确定一张红色的牌。在这里也一样,不论甲的身份如何,如果你得到的答案是“哒”,那么丙就是真之神或伪之神中的一个;如果答案是“呀”,那么乙就是真之神和伪之神中的一个。
假设答案是“呀”(回答必居其一),那么乙就排除了是任性之神的可能,这正是我们想要的结果,因为我们知道怎么确定这种情况下对方的身份,于是我们问他第二个问题:“当且仅当冥王星是矮行星时,‘哒’才意味着‘是’吗?”,因为我们知道冥王星是矮行星,那么乙的两种回答就有:
1、如果乙是真之神,那么答案就是“哒”。
2、如果乙是伪之神,那么答案就是“呀”,因为正确的答案是“哒”,而他总是讲假话。
假设答案是“哒”,那么乙就是真之神。此时我们向他询问最后一个问题,“当且仅当甲是任性之神时,‘哒’的意思才是‘是’吗?”考虑到任性之神只可能是甲或丙中的一个,那么:
1、如果回答是“哒”,即可说明甲是任性之神,于是丙就是伪之神。
2、如果回答是“呀”,即可说明丙是任性之神,于是甲就是伪之神。
让我们回过头来总结下 Boolos 的逻辑,我们判断真、伪、任性之神的三个问题是这样的:
1、向甲神提问:“当且仅当乙是任性之神时你是真之神,当且仅当上一句为真时‘da’的意思才是‘是’吗?”(假设甲回答“呀”,那么乙就是真之神或伪之神。)
2、向乙提问:“当且仅当冥王星是矮行星时,“哒”才意味着‘是’吗?”(假设乙回答“哒”,那么乙就是真之神。)
3、继续追问乙(真之神):“当且仅当甲是任性之神时,‘哒’才意味着‘是’吗?”由于乙是真之神,他如果回答“哒”就意味着甲是任性之神,丙是伪之神。
问题解决!
所以“史上最难逻辑谜题”教会了我们什么呢?按照Boolos的说法,它告诉我们逻辑学基本方法里“排中律”的重要性。排中律的基本思想非常简单:每句话或者是真的、或者是假的,但不可能处于中间情况。Boolos说:“如果否认排中律的作用,那么在日常生活中,我们恐怕会完全丧失在多种可能中做判断的能力。”这是条让人清醒的思想。我们必须感谢Smullyan的谜题,让我们在愉悦的思考中学到了这一课。
原文链接 :http://nautil.us/issue/30/identity/how-to-solve-the-hardest-logic-puzzle-ever
本文由微信公众号“科研圈”(ID:keyanquan)授权转载。
转载请先联系keyanquan@huanqiukexue.com。
编辑:Alex Yuan
近期热门文章Top10
↓ 点击标题即可查看 ↓
1. 如果再读一次研究生
3. 你以为你很懂水?
4. 拿过奥运会奖牌的数学家,数学博士答辩时却坐满了他的球迷
7. 物理天才马约拉纳消失之谜
9. 他是中科院超牛的物理学者,更是摇滚界无人不知的“李白”