一个数学系的朋友跟我讲过这么一个笑话,说数学系一共三个班,某天系里上大课时,偶然听见两个人对话,其中一个人问:「请问你是 3 班的吗?」另一个人说:「哦,原来你是 2 班的啊!」这让我立即想起我在 http://spikedmath.com 上看到的一个笑话。 三个逻辑学家走进一家酒吧。 侍者问:「你们都要啤酒吗?」第一个人说:「我不知道。 」第二个人说:「我也不知道。 」第三个人说:「是的,我们都要啤酒。 」还有一个类似的笑话,说的是数学系的图书馆里上演的一幕。 一位男生鼓起勇气走向一位女生,然后字正腔圆地说:「这位女同学,问你个问题啊:如果我约你出来的话,你的回答和这个问题本身的回答会是一样的吗?」
你都看明白了吗?
1. 桌面上放有四张纸牌,每张牌都有正反两面,一面写着一个字母,一面写着一个数字。 现在,你所看到的这四张牌上面分别写着 D、K、3、7。 为了验证「如果一张牌的其中一面写着字母 D,那么它的另一面一定写着数字 3」,你应该把哪两张牌翻过来?
心理学家 Peter Wason 的实验表明,绝大多数人会选择把 D 和 3 翻过来。 然而,正确的答案应该是把 D 和 7 翻过来。 试想,如果把数字 3 翻过来,即使背面不是字母 D,又能怎样呢?这并不会对「D 的背面一定是 3」构成任何威胁。 但是,如果把数字 7 翻过来,背面偏偏写着字母 D,这不就推翻「D 的背面一定是 3」了吗?所以,为了完成验证,我们应该把 D 翻过来,以确定它的另一面是 3,另外再把 7 翻过来,以确定它的另一面不是 D。
在数学中,我们通常把「若非 Q,则非 P」叫做「若 P,则 Q」的「逆否命题」( contrapositive )。 也就是说,把一个命题的条件和结论颠倒一下,然后分别变成其否定形式,新的命题就叫做是原命题的逆否命题。 例如,「如果排队买票的人很多,那么电影一定很好看」的逆否命题就是「如果电影不好看,那么排队买票的人就不多」。 稍作思考你便会发现:原命题和逆否命题一定是等价的。 知道这一点,也能帮助我们解决 Wason 的 DK37 问题。 「如果这一面是字母 D,那么另一面一定是数字 3」,它的逆否命题就是「如果这一面不是数字 3,那么另一面一定不是字母 D」。 单看原命题,我们显然应该翻开字母 D。 为了断定还应该翻开哪一张牌,我们考察它的逆否命题,于是很容易确定出,接下来应该翻开的是数字 7。
有时候,原命题的正确性很难让人接受,但是它的逆否命题的正确性却很容易看出来。 于是,我们便能借助逆否命题这一工具,让原命题的正确性变得更加显然。 人们很喜欢争论无限循环小数 0.9999…是否等于 1。 当然,0.9999…确实是等于 1 的,但总有一些人会认为,0.9999…永远会比 1 小那么一点点,因而不可能精确地等于 1。 每次遇到这样的人,我都会问他:「如果你认为 0.9999…不等于 1,那么你能说出一个介于 0.9999…和 1 之间的数吗?」这通常已经能让很多人心服口服了,不过偶尔会有一些人质疑:「两个数之间不存在别的数,就能说明这两个数是相等的吗?」此时,逆否命题就派上用场了。 「如果两个数之间不存在别的数,那么这两个数就是相等的」,它的逆否命题便是,「如果两个数不相等,那么这两个数之间一定可以插入别的数」,而后者显然是正确的(如果 a ≠ b ,那么( a + b )/2 就是一个介于 a 、 b 之间的数),因此原命题也是正确的。
2. 有一天,我走在去理发店的路上。 理发店里有 A、B、C 三位理发师,但他们并不总是待在理发店里。 另外,理发师 A 是一个出了名的胆小鬼,没有 B 陪着的话 A 从不离开理发店。 我远远地看见理发店还开着,说明里面至少有一位理发师。
我最喜欢理发师 C 的手艺,因而我希望此时 C 在理发店里。 根据已知的条件和目前的观察,我非常满意地得出这么一个结论:C 必然在理发店内。 我的推理过程是这样的:
反证,假设 C 不在理发店。 这样的话,如果 A 也不在理发店,那么 B 就必须在店里了,因为店里至少有一个人;然而,如果 A 不在理发店,B 也理应不在理发店,因为没有 B 陪着的话 A 是不会离开理发店的。 因此,由「C 不在理发店」同时推出了「若 A 不在则 B 一定在」和「若 A 不在则 B 也一定不在」两个矛盾的结论。 这说明,「C 不在理发店」的假设是错误的。
我的推理过程正确吗?如果不正确,问题出在哪儿?
从已有的条件看,C 当然有可能不在理发店。 所以,我的「证明」肯定是错的。 错在哪儿呢?其实,「若 A 不在则 B 一定在」和「若 A 不在则 B 也一定不在」并不是互相矛盾的,它们有可能同时成立,并且这将会告诉我们 A 一定在。 也就是说,正确的推理过程和由此得出的结论应该是这样的:
(1) 如果 C 不在的话,那么 A 不在就意味着 B 一定在;
(2) 如果 C 不在的话,那么 A 不在就意味着 B 一定不在;
(3) 所以,如果 C 不在的话,那么 A 不在就会发生矛盾;
(4) 所以,如果 C 不在的话,那么 A 一定在。
这个有趣的故事来源于 Lewis Carroll 的一篇题为 A Logical Paradox 的小论文。
3. 有一些正整数虽然很大,甚至超过了 20 位,但仍然可以用 20 个或更少的汉字表达出来。 例如,100 000 000 000 000 000 000 000 可以表达为「一后面二十三个零」,157 952 079 428 395 476 360 490 147 277 859 375 可以表达为「前二十七个正奇数之积」。 下面,我要证明一个非常惊人的结论:事实上,所有的正整数都可以用 20 个以内的汉字表达出来!
证明的基本思路是用反证法。 假设存在某些不能在 20 个汉字以内表达的正整数,那么这里面一定有一个最小的不能在 20 个汉字以内表达的正整数,而这个数已经被我们用「最小的不能在二十个汉字以内表达的正整数」表达出来了,矛盾。 因此,我们的假设是错误的。 由此可知,所有的正整数都可以用 20 个以内的汉字表达出来。
我的证明过程正确吗?如果不正确,问题出在哪儿?
所有的正整数都可以用 20 个以内的汉字表达出来,这个结论明显是错的——用 20 个或者更少的汉字组成一个句子,总的方案数量是有限的;而正整数是无限多的,它们不可能都有与之对应的句子。 所以,我的「证明」过程当中一定有某些非常隐蔽的问题。 关键是,这个问题在哪儿呢?如果我们对正整数的表达方法做一个细致的分析,问题就逐渐暴露出来了。
什么叫做用若干个汉字表达一个数?这里面可能会涉及很多问题,比如有些句子根本就不合语法,比如有些句子根本就不是在表达一个数,比如有些句子的意思可能存在模糊或者有歧义的现象,比如有些句子涉及太多技术问题以至于很难算出它在表达哪个数。 不过,这些细节问题我们都不管。 我们假设有一台超级强大的机器,每次我们可以往里面输入一个汉语句子(但不能超过 20 个汉字),机器就可以根据内置的一系列复杂规则,自动判断这个句子是否合法地表达了一个正整数,如果是的话,它还能具体地给出这个数的值。 这台假想的机器就明确了汉字「表达」数字的具体含义。
所以,有些数是这台机器能输出的,有些数是这台机器不能输出的。 当然,这里面会有一个最小的这台机器不能输出的数。 而且,「最小的这台机器不能输出的数」本身就不足 20 个字,是可以输进这台机器的。 那么,把这句话输入机器,会得到什么呢?不要带有任何期望——机器会告诉我们,这句话并不能表达一个数。 机器读到这句话的第一反应将会是:啊,机器?什么机器?我们站在这台机器之外,能够弄明白「最小的这台机器不能输出的数」是什么意思,但这句话在机器内部是不能被理解的。
类似地,「这个数已经被我们用『最小的不能在二十个汉字以内表达的正整数』表达出来了」,在这句话里,里面那一层的「表达」和外面那一层的「表达」有着不同的内涵和外延。 我们不妨把里面那一个表达记作「表达 1」,把外面那一个表达记作「表达 2」。 整句话就成了「这个数已经被我们用『最小的不能在二十个汉字以内表达 1 的正整数』表达 2 出来了」。 表达 1 和表达 2 有什么区别呢?至少有这么一个区别:表达 2 的规则里可以使用表达 1 这个概念,但表达 1 的规则里显然不能使用表达 1 这个概念。 由于表达 2 更强大一些,因此最小的不能用 20 个以内的汉字表达 1 的正整数,完全有可能用 20 个以内的汉字表达 2 出来,这并没有矛盾。
这个有趣的逻辑困惑叫做 Berry 悖论,它是由伯特兰·罗素( Bertrand Russell )在 1908 年 American Journal of Mathematics 的一篇论文当中提出来的。 根据论文脚注中的描述,这个逻辑困惑是牛津大学的图书馆管理员 G. G. Berry 想出来的,于是就有了 Berry 悖论这个名字。 Berry 悖论揭示了数理逻辑中一个至关重要的概念,即「系统之内」和「系统之外」的区别。
伯特兰·罗素是 20 世纪英国著名的数学家,他对数学底层的逻辑系统有过很多深刻的研究。 1910 年到 1913 年期间,他和阿尔弗雷德·怀特海( Alfred North Whitehead )合著了《数学原理》( Principia Mathematica ),这可以称得上是史无前例的数学巨作。 两人花了总共三卷的篇幅,从最底层的公理出发,用最严谨的逻辑,逐步推出各种各样的数学结论,搭建起整座数学大厦。 全书第一卷第 379 页正中间的一小段话成为了经典中的经典:「定义算术加法之后,根据这一命题便可得出,1+1=2。 」
罗素这人简直就是一神人,举个例子吧,他曾经获得过诺贝尔奖。 等等,诺贝尔奖不是没有数学奖吗?其实,罗素获得的是诺贝尔文学奖。 罗素不但是一个数学家,还是一个哲学家,他对历史、政治、文学都抱有极大的兴趣。 很难想象,《数学原理》和《社会重建原则》( Principles of Social Reconstruction )竟然是罗素在同一时期创作的作品。 1950 年,他因「多样且重要的作品,持续不断地追求人道主义理想和思想自由」获得了诺贝尔文学奖。
4. 大家应该见过不少「甲乙丙丁各说了一句话……如果他们当中只有一个人说假话,那么谁是凶手」一类的逻辑推理题。 这次,让我们来点新鲜的。 下面这几个有趣的逻辑问题是我自己创作的。 在每个问题中,甲、乙、丙三人各说了一句话,你需要判断出每个人说的究竟是真话还是假话。 每个问题都有唯一解。 注意,与传统的逻辑推理题目不同,没有任何条件告诉你究竟有多少人在说真话,有多少人在说假话。 解决问题时,请尽量避免用枚举法试遍所有 8 种可能,否则这将失去「逻辑推理」的意义。
(1) 甲:乙说的是假话;
乙:丙说的是假话;
丙:甲要么说的是真话,要么说的是假话。
(2) 甲:我们三个人当中有人说真话;
乙:我们三个人当中有人说假话
丙:我们三个人当中没有人说假话。
(3) 甲:我们三个人都说的真话;
乙:我们三个人都说的假话;
丙:我们三个人当中,有些人在说真话,有些人在说假话。
(4) 甲:丙说的真话;
乙:丙说的假话;
丙:你们俩一个说的真话,一个说的假话。
(5) 甲:乙说的是真话;
乙:甲说的是真话;
丙:我们都说的是假话。
(6) 甲:我们当中有一个人说假话;
乙:我们当中有两个人说假话;
丙:我们当中有三个人说假话。
(7) 甲:我们三个人要么都说的真话,要么都说的假话;
乙:我们三个人要么都说的真话,要么都说的假话;
丙:我们三个人要么都说的真话,要么都说的假话。
(1) 显然,丙说的是真话。 因此,乙说的是假话。 因此,甲说的是真话。 估计有人还没反应过来:第一步怎么没有任何条件就推出丙说的是真话了?这不是靠某些条件推理出来的,而是因为丙所说的内容本身一定是对的——「甲要么说的是真话,要么说的是假话」,这不废话吗?下面还有多处推理也是这么来的。
(2) 乙和丙说的互相矛盾,他俩的话必然是一真一假。 这就表明,三个人当中既有人说真话,又有人说假话。 因此,甲和乙都说的真话,丙说的是假话。
(3) 这三句话互相矛盾,却又涵盖了所有情况。 因此,三句话中有且仅有一句话为真。 因此,甲、乙说的是假话,丙说的是真话。
(4) 甲和乙说的互相矛盾,他俩的话一真一假。 因此,丙说的是真话。 因此,甲说的是真话,乙说的是假话。
(5) 显然,丙说的不可能是真话,否则这就和他自己说的话矛盾了。 因此,丙说的是假话。 也就是说,「我们都说的是假话」这个说法是不对的。 换句话说,不是所有人说的都是假话。 因此,甲和乙当中至少有一个人说的是真话。 不管甲和乙谁说了真话,都可推出甲和乙都在说真话。
(6) 显然,不可能所有人都在说假话,否则丙说的就是真话。 显然,不可能有两个或两个以上的人在说真话,因为这三句话是互相矛盾的。 因此,恰好有一个人说的是真话。 因此,恰好有两个人说的是假话。 因此,乙说的是真话,甲和丙说的是假话。
(7) 三个人说了三句内容完全相同的话,因而他们要么都说的真话,要么都说的假话。 因而,他们说的都是真话。
最后,让我们来看两个「史上最难的逻辑谜题」吧。
5. 某座岛上有 200 个人,其中 100 个人的眼睛是蓝色的,另外 100 个人的眼睛是棕色的。 所有人都不知道自己眼睛的颜色,也没法看到自己眼睛的颜色。 他们可以通过观察别人的眼睛颜色,来推断自己的眼睛颜色;除此之外,他们之间不能有任何形式的交流。 每天午夜都会有一艘渡船停在岛边,所有推出自己眼睛颜色的人都必须离开这座岛。 所有人都是无限聪明的,只要他们能推出来的东西,他们一定能推出来。 岛上所有人都非常清楚地知道上面这些条件和规则。
有一天,一位大法师来到了岛上。 他把岛上所有人都叫来,然后向所有人宣布了一个消息:岛上至少有一个人是蓝眼睛。
接下来的每一个午夜里,都会有哪些人离开这座岛?
答案:从第 1 个午夜到第 99 个午夜,没有任何人离开这座岛;到第 100 个午夜,所有 100 个蓝眼睛将会同时离开。
为什么?大家不妨先这样想:什么情况下第一天就会有人离开这座岛?很简单。 假如岛上只有一个人是蓝眼睛,那么当他听说岛上至少有一个蓝眼睛的人之后,他就知道了自己一定就是蓝眼睛,因为他看到的其他所有人都是棕色的眼睛。 因而,当天夜里他就会离开这座岛。 好了,如果岛上只有两个蓝眼睛的人呢?他们在第一天都无法立即推出自己是蓝眼睛,但在第二天,每个人都发现对方还在,就知道自己一定是蓝眼睛了。 这是因为,每个人都会这么想:如果我不是蓝眼睛,那么对方昨天就会意识到他是蓝眼睛,对方昨天夜里就应该消失,然而今天竟然还在这儿,说明我也是蓝眼睛。 最后,这两个人将会在第二天夜里一并消失。
类似地,如果岛上有三个蓝眼睛的人,那么每个人到了第三天都发现另外两个人还没走,便能很快推出,这一定是因为自己是蓝眼睛。 所以,这三个蓝眼睛的人将会在第三个午夜集体离开。 不断地这样推下去,最终便会得出,如果岛上有 100 个蓝眼睛的人,那么每个人都会在第 100 天意识到自己是蓝眼睛,于是他们将会在第 100 个午夜集体离开。
很多人都会对这段解释非常满意,然而细心的朋友却会发现一个问题:在大法师出现之前,每个人都能看见 99 个蓝眼睛的人,因此每个人都知道「岛上至少有一个人是蓝眼睛」这件事情。 那么,大法师的出现究竟有什么用呢?这是一个很好的问题。 它的答案是:大法师的行为,让「岛上至少有一个人是蓝眼睛」的消息成为了共识。
在生活当中,我们经常会遇到与共识有关的问题。 让我们来看这么一段故事。 A、B 两人有事需要面谈,他们要用短信的方式约定明天的见面时间和地点。 不过,两人的时间都非常宝贵,只有确信对方能够出席时,自己才会到场。 A 给 B 发短信说:「我们明天 10:00 在西直门地铁站见吧。 」不过,短信发丢了是常有的事情。 为了确信 B 得知了此消息,A 补充了一句:「收到请回复。 」B 收到了之后,立即回复:「已收到,明天 10:00 不见不散。 」不过,B 也有他自己的担忧:A 不是只在确认我要去了之后才会去吗?万一他没有收到我的确认短信,届时没有到场让我白等一中午怎么办?因此 B 也附了一句:「收到此确认信请回复。 」A 收到确认信之后,自然会回复「收到确认信」。 但 A 又产生了新的顾虑:如果 B 没收到我的回复,一定会担心我因为没收到他的回复而不去了,那他会不会也就因此不去了呢?为了确保 B 收到了回复,A 也在短信末尾加上了「收到请回复」。 这个过程继续下去,显然就会没完没了。 其结果是,A、B 两人一直在确认对方的信息,但却始终无法达成这么一个共识:「我们都将在明天 10:00 到达西直门地铁站」。
有的人或许会说,那还不简单,A 给 B 打个电话不就行了吗?在生活当中,这的确是上述困境的一个最佳解决办法。 有意思的问题出来了:打电话和发短信有什么区别,使得两人一下就把问题给解决了?主要原因可能是,打电话是「在线」的,而发短信是「离线」的。 在打电话时,每个人都能确定对方在听着,也能确定对方确定自己在听着,等等,因此两人说的任何一句话,都将会立即成为共识:不但我知道了,而且我知道你知道了,而且我知道你知道我知道了……
大法师当众宣布「岛上至少有一个人是蓝眼睛」,就是让所有人都知道这一点,并且让所有人都知道所有人都知道这一点,并且像这样无限嵌套下去。 这就叫做某条消息成为大家的共识。 让我们来看一下,如果这个消息并没有成为共识,事情又会怎样。
为了简单起见,我们还是假定岛上只有两个人是蓝眼睛。 这两个人都能看见对方是蓝眼睛,因而他们都知道「岛上至少有一个人是蓝眼睛」。 但是,由于法师没有出现,因此他俩都不知道,对方是否知道「岛上有蓝眼睛」\这件事。 所以,到了第二天的时候,之前的推理就无法进行下去了——每个人心里都会想,对方没有离开完全有可能是因为对方不知道「岛上有蓝眼睛」这件事。
类似地,如果岛上有三个人是蓝眼睛,那么除非他们都知道,所有人都知道所有人都知道了「岛上有蓝眼睛」这件事,否则第三天的推理是不成立的——到了第三天,会有人觉得,那两个人没走仅仅是因为他们不知道对方也知道「岛上有蓝眼睛」这件事罢了。 继续扩展到 100 个蓝眼睛的情形,你会发现,「互相知道」必须得嵌套 100 层,才能让所有推理顺利进行下去。
实际上,我们的题目条件也是不完整的。 「岛上的所有人都非常清楚地知道上面这些条件和规则」这句话应该改为「上面这些条件和规则是岛上所有人的共识」,或者说「岛上所有人都知道上面这些条件和规则,并且所有人都知道所有人都知道,等等等等」。 如果没有这个条件,刚才的推理也是不成立的。 比方说,虽然所有人都是无限聪明的,但是如果大家不知道别人也是无限聪明的,或者大家不知道大家知道别人也是无限聪明的,推理也会因为「昨晚他没走仅仅是因为他太笨了没推出来」之类的想法而被卡住。 下一章的博弈问题当中,共识的概念也会起到很大的作用。
这是一道非常经典的问题,网络漫画网站 XKCD 把它称作是「世界上最难的逻辑谜题」。 我至少见过这个问题的四种不同的版本。 John Allen Paulos 的 Once Upon A Number 里写过一个大女子主义村的故事:村子里有 50 个已婚妇女,每个妇女都不知道自己的男人是否有外遇,但却可以观察到其他妇女的男人是否有外遇。 规定,只要哪个妇女推出了自己的男人有外遇,当晚她就必须把自己的男人杀死。 有一天,村子里来了一位女族长。 女族长宣布,岛上至少有一个妇女,他的男人有外遇。 实际上,每个妇女的男人都有外遇。 那么最后究竟会发生什么呢?村子里的人将会度过 49 个平静的晚上,到第 50 天则会出现彻彻底底的大屠杀。
另一个与疯狗有关的版本也大致如此:村子里每个人都养了一条狗,每个人都不知道自己的狗是不是疯了,但都可以观察到别人家的狗是不是疯狗。 只要推出自己的狗是疯的,当天晚上就必须用枪把它杀死。 有一天,村里来了一个人,宣布了至少有一条疯狗的消息,然后前 2 天平安无事,第 3 天夜里出现了一阵枪响,问村子里实际上有多少疯狗?答案是,3 条。
最后还有一个戴帽子的版本。 老师给 5 个小孩儿每个人头上都戴了一顶黑帽子,然后告诉大家,至少有一个人头上戴着的是黑色的帽子。 接下来,老师向大家提问:「知道自己戴着黑帽子的请举手」,连问 4 次没有反应,到了第 5 次则齐刷刷地举手。 有的地方把「戴着黑帽子」换成「额头上点了一个墨点」,然后老师让大家推测自己额头上是否有墨点。 这本质上也是一样的。
6. 有三台机器 A、B、C,它们分别叫做「真理」、「谬误」和「随机」(但你不知道谁是谁),其中「真理」永远说真话,「谬误」永远说假话,「随机」则会无视问题内容,随机作答。 每次你可以向其中一台机器提问,提出的问题只能是是非问句的形式。 这台机器将会用 da 和 ja 来回答你,这两个词一个表示「是」,一个表示「否」,但你也不知道哪个词表示哪个意思。 你的任务是用三次提问的机会辨别出 A、B、C 这三台机器各自的身份。
需要注意的是,你可以向同一台机器多次提问,也就是说,这三个问题不一定是分别提给这三台机器的。 另外,每一次都是向谁提出什么问题,这并不需要一开始就完全定下来,后面的提问内容和提问对象可以根据前面得到的回答而「随机应变」。 「随机」的行为应该视作一枚公平的硬币:每次回答问题时,他都有 50% 的概率说 da,有 50% 的概率说 ja。
估计大家见过类似的题目,只不过没这么变态而已。 有一类题目叫做「骑士与无赖」( Knights and Knaves ),基本假设就是骑士永远说真话,无赖永远说假话,你需要向他们问一些问题,从而获取某些正确的信息。 其中一个经典的问题就是,有一个岔路口,其中一条路通往天堂,另外一条路通往地狱,但是你不知道哪条路通往哪里。 每条路上都站着一个人,一个是骑士,一个是无赖,但是你也不知道谁是谁。 你怎样向他们中的一个人提出一个是非问题,从而判断出哪条路是通往天堂的路?
答案是,随便问一个人:另一个人是否会告诉我你这条路是去往天堂的?如果这个人回答「不会」,那么这有两种情况:这个人是骑士,他在如实地警告你,另一个人会骗你说这条路不会通往天堂;或者这个人是无赖,他骗你说,另一个人不会告诉你这条路通往天堂。 总之,这条路就是通往天堂的;如果这个人回答「会」,那么这有两种情况:这个人是骑士,他在如实地警告你,另一个人会骗你说这条路就是通往天堂的;或者这个人是无赖,他骗你说,另一个人会告诉你这条路通往天堂。 总之,这条路就是通往地狱的。
这已经是非常困难的逻辑问题了,但显然,它还是没有三台机器的问题困难。 在维基百科上有一个条目叫做「史上最难的逻辑谜题」( The Hardest Logic Puzzle Ever ),说的就是这个问题。 根据维基百科的描述,这个问题是由美国逻辑学家 George Boolos 在 1996 年出版的 The Harvard Review of Philosophy 一书中提出的。
这个问题的解法有很多,下面是其中一种比较巧妙的解法。 我们需要用到一个非常无敌的技巧:对于任意一个是非问题 P(比如说「A 是『随机』吗」),如果你想知道它是对的还是错的,那么就向「真理」或者「谬误」中的其中一个提问:「如果我问你 P,你会回答 ja 吗?」只要得到的回答是 ja,就说明 P 是正确的;只要得到的回答是 da,就说明 P 是错误的。 为什么?要想证明这一点其实是很容易的,只需要分别考虑以下 8 种情况就可以了。
(1) 若 P 是正确的,问的是「真理」,ja 表示「是」,则得到的回答是 ja
(2) 若 P 是正确的,问的是「真理」,ja 表示「否」,则得到的回答是 ja
(3) 若 P 是正确的,问的是「谬误」,ja 表示「是」,则得到的回答是 ja
(4) 若 P 是正确的,问的是「谬误」,ja 表示「否」,则得到的回答是 ja
(5) 若 P 是错误的,问的是「真理」,ja 表示「是」,则得到的回答是 da
(6) 若 P 是错误的,问的是「真理」,ja 表示「否」,则得到的回答是 da
(7) 若 P 是错误的,问的是「谬误」,ja 表示「是」,则得到的回答是 da
(8) 若 P 是错误的,问的是「谬误」,ja 表示「否」,则得到的回答是 da
直观地想一想,道理也不复杂。 先来看看「真理」吧。 对于「如果有人问你 P,你会怎么回答」这样的问题,「真理」的反应大致有 4 种:会回答「是」,不会回答「否」,会回答「否」,不会回答「是」。 前两种情况都意味着,P 是正确的;后两种情况都意味着,P 是错误的。 前两种情况其实属于同一种情况,即对于「你会回答 ja 吗」的答案就是 ja;后两种情况其实也属于同一种情况,即对于「你会回答 ja 吗」的答案是 da。 总结起来就是,对于「如果我问你 P,你会回答 ja 吗」这样的问题,回答 ja 就意味着 P 是正确的,回答 da 就意味着 P 是错误的。
那么「谬误」呢?最精妙的地方就在这里:我们巧妙地用了问题的嵌套,让「谬误」的行为和「真理」一样了。 试想,如果「谬误」拿到了「如果有人问你 P,你会回答 ja 吗」这样的问题,它会怎么办?它肯定会欺骗你,让你以为,如果真的有人问它 P 时,它会像乖孩子一样好好回答。 它会阴笑着回答你,「嘿嘿,如果有人问我 P,我会回答 ja 的」,或者「嘿嘿,如果有人问我 P,我不会回答 ja 的」。 在这一瞬间,它的思路就和「真理」一样了。
反复利用这种「问题嵌套」的技巧,我们就能迅速判断出 A、B、C 三者的身份了。 首先,我们要用一次提问找出一台肯定不是「随机」的机器。 为此,我们询问机器 B:如果我问你「A 是不是『随机』」,你会回答 ja 吗?如果 B 回答 ja,那么要么它自己就是「随机」,要么它是「真理」和「谬误」之一,其回答将表明 A 是「随机」。 不管怎样,C 都不是「随机」。 如果 B 回答 da,那么要么它自己就是「随机」,要么它是「真理」和「谬误」之一,其回答将表明 A 不是「随机」。 不管怎样,A 都不是「随机」。
第一步完成后,我们就找出了一台机器(有可能是 A,有可能是 C),它一定不是「随机」。 然后就问它:如果我问你「你是不是『真理』」,你会回答 ja 吗?它的回答将会直接告诉你它的身份。 最后,继续问它:如果我问你「B 是不是『随机』」,你会回答 ja 吗?它的回答将会直接告诉你另外两台机器究竟谁是「随机」,从而揭晓所有机器的身份。