大家好,我是 Senko。 本文将解读逻辑谜题的经典“天堂与地狱的守门人”。
眼前有两扇门。一扇通往天堂,另一扇通往地狱。门前站着两位守门人,一人必定说真话,另一人必定说谎。谁诚实,光看外表分不出来。允许你做的,只有向其中一人提一个问题。就在这个条件下,存在一个必定能找出天堂之门的提问。这是从不可信的对象嘴里掏出正确答案的、提问设计的杰作。
天堂与地狱的守门人是什么
天堂与地狱的守门人,是面对诚实者与说谎者混杂的对象,只靠提问的巧思就把正确信息掏出来这一类逻辑谜题。英语圈有把诚实者叫 knight(骑士)、说谎者叫 knave(无赖)的传统,这一整个门类因此被统称为“骑士与无赖谜题”。
先把规则整理一下。
- 门有两扇。一扇通天堂,另一扇通地狱
- 守门人有两位。一人必定说真话,一人必定说谎
- 守门人知道哪扇门通天堂,也知道对方是诚实者还是说谎者
- 你只能向其中一人提问一次
先想想直白地问“天堂之门是哪一扇”会怎样。碰上诚实者会被告知天堂之门,碰上说谎者会被告知地狱之门。既然分不出问的是谁,答案正确的概率仍是五五开。这就等于把宝贵的一次提问白白扔了。
答案是绕经“另一位守门人”的提问
著名的正解是这样的。向哪位守门人提问都行,就这么问:
“如果我去问另一位守门人‘天堂之门是哪一扇’,他会指哪扇门?”
然后选与被指的那扇相反的门。这样必定能上天堂。
为什么一定成功,分情况确认一下。
被问的是诚实者时。诚实者知道说谎者会指地狱之门,而他会如实报告,于是他指地狱之门。
被问的是说谎者时。诚实者本该指天堂之门,说谎者要把这个事实说反,于是他同样指地狱之门。
也就是说,无论问的是谁,回来的答案必定统一为“地狱之门”。到最后都不知道对方是谁,答案偏向哪边却能完全预测。所以选反的就行——这就是这道谜题的漂亮之处。
斯穆里安推广开的骑士与无赖之岛
把这类谜题体系化并推向世界的,是既是数学家又是魔术师的雷蒙德·斯穆里安。他在 1978 年的著作《这本书叫什么?》里,以“只住着必定说真话的骑士与必定说谎的无赖的岛”为舞台大量发表问题,成了说谎者谜题这一门类的代名词。
介绍一道斯穆里安岛上的题。遇到岛民 A 和 B 时,A 说:“我们两个都是无赖。”那么,两人的身份是什么?
答案是A 是无赖,B 是骑士。假如 A 是骑士,就会出现骑士把“我是无赖”当真话说的矛盾,所以 A 确定是无赖。既然无赖 A 的发言必是谎话,“两人都是无赖”就不成立,于是 B 是骑士。能从发言内容反推出发言者自己的身份,正是这一门类的妙趣。
顺带一提,无赖没法单独说出“我是无赖”。无赖说了就成了真话,骑士说了又成了谎话。这个结构,与古希腊传下来的“说谎者悖论”是连成一片的。
另外,天堂与地狱的守门人本身,也因出现在电影《魔幻迷宫》(1986 年)而广为人知,在海外作为“两扇门问题”成了流行文化的常备梗。
让谎言的滤镜必定过一次的设计
这个提问为什么强,把机制再深挖一层。
把诚实者想成“原样返回输入的滤镜”,把说谎者想成“把输入反转后返回的滤镜”。绕经另一人的提问,被设计成答案送到你手上之前,必定同时通过“原样一次”与“反转一次”这两道滤镜。通过的顺序无论哪种,反转合计都是一次。所以输出必定稳定为“正解的反面”。
这里要紧的是一次发想的转换:如果错误总朝着固定方向,那它就不再是噪声,而是信息。答案靠不住是在“不知道对不对”的时候,而已知“必定出错”的答案,翻过来就是正解。
还有一个用同样原理的著名别解,是让对方自己预测自己答案的自指型提问。
“如果有人问你‘天堂之门是哪一扇’,你会指哪扇门?”
诚实者会老实指天堂之门。说谎者要就“本该指地狱之门的自己”撒谎,于是答成“我会指天堂之门”。谎言在自己身上叠了两次,互相抵消了。这种情况下,照着被指的门走就能到天堂。
绕经型把反转凑成奇数次,自指型把反转凑成偶数次。可以说,它们是“控制反转的次数”这同一条原理的两种实现。
神变成三位的史上最难逻辑谜题
这道谜题有个难到可怕的进阶版。1996 年哲学家乔治·布洛斯以“史上最难的逻辑谜题”之名发表的问题。据布洛斯说,原案出自斯穆里安,最后那道拧劲是人工智能研究创始人之一约翰·麦卡锡加的。
- 神有三位。一位必定说真话,一位必定说谎,一位完全随机作答
- 能用“是”或“否”回答的问题,合计最多问三次,每次可挑任意一位神
- 神们听得懂问题,但用“da”和“ja”两个词回答。哪个是“是”,你并不知道
- 请判定三位神各自的身份
心血来潮作答的随机神,加上意义不明的回答,噪声叠了两层,可即便如此,已证明三问就能解开。钥匙仍是嵌套的提问:用“如果我问你……,你会答 da 吗?”这种形式,词义的不明与谎言的反转会双双被抵消。在天堂与地狱守门人那里练出的工具,原封不动就是最难题的钥匙——这个事实让我感到这个门类的纵深。
从不可信的信息源里掏出答案的技术
这道谜题的发想,在谜题之外也照样管用。
第一,是系统性的错误比随机的错误好对付这个视角。总是高出两度的温度计,校正一下就是准确的测量仪。每次都把估算做乐观三成的成员,其报告只要癖好一致,同样可以校正。真正可怕的不是说谎的神,而是看心情改答案的随机神——这与数据分析中系统误差和随机误差的关系一模一样。
第二,“绕经他人的提问”作为问难以启齿之事的技术是真实存在的。直接问“你对这个职场有不满吗”容易得到场面话,此时改问“你觉得同事们会怎么说”的方法叫投射式提问,是市场调查与面谈的标配。以自己的意见说不出口的话,换成对他人的预测就好开口了。
第三,是掺入已知答案的问题来测量对方的可信度这个发想。质检里混进带标准答案的检验样本,机器学习里留出测试用的正确数据,可以说都是为了先看穿守门人身份而提的问题。
前提被推翻时怎么打
如果守门人之间不知道对方的身份,是不是就不成立了
问得尖锐。绕经型的提问依赖于“对方知道另一人会怎么答”。这个前提一垮,绕经型就失灵了。不过即便如此,自指型的“如果有人问你天堂在哪边,你会指哪边”因为反转在对方自己心里就闭合了,依然有效。在前提更弱时也能成立,可以说自指型是更结实的解。
如果守门人只用“是”或“否”回答呢
不请他指门,改问“如果有人问你‘左边那扇是天堂吗’,你会答‘是’吗?”。答“是”则左边是天堂,答“否”则右边是天堂。靠自指抵消的原理原封不动,只是换了回答形式。布洛斯最难题里用的,也正是这种形式的提问。
如果混进了一位随便乱答的守门人呢
从随机作答的对象身上,问什么都掏不出信息。因此布洛斯的问题里要组一个战略:用第一问先锁定一位“至少不是随机”的神,把剩下的提问集中到那位身上。不是消灭噪声源,而是绕开噪声源来规划路线,作为在不可信信息环境中的行动方式,我觉得很有启发。
相关的逻辑谜题与悖论
处理说谎者谈论自身时会发生什么的“说谎者悖论”、由预言而非提问决定命运的“鳄鱼悖论”,以及把推理他人脑内的连锁堆到极限的“蓝眼睛岛”。
结语
本文解读了逻辑谜题的经典“天堂与地狱的守门人”。
正解的提问高明在它压根不去识破说谎者。它一开始就放弃猜对方身份,转而把“问谁都返回同一个答案”的结构做进提问本身,从而把不确定性直接消掉。不盯着每个答案的真假,而是盯着答案产生的机制,这种发想在信息泛滥、真伪核验跟不上的当下才格外见效。
必定出错的信息源,翻过来就是正确的信息源。我喜欢这个逆说带来的畅快,觉得它是最想讲给别人听的谜题之首。
想返回逻辑谜题与概率谜题列表的读者请点击下方链接。
我们下一篇文章见。
📚 系列:逻辑谜题大全(2/11)


