理发师悖论真是一个悖论吗?

前沿科技 2年前 (2022) 虚像
1 0 0

撰文 | 文兰(中国科学院院士北京大学数学学院教授)

1

什么是悖论

我们给悖论下一个 " 进行式 " 的定义:悖论就是导致矛盾但原因不明的推理。

根据这一定义,一旦矛盾的原因找到了,悖论也就不再是悖论了。另外,矛盾的原因应该比较难于察觉。

这一定义可能与许多文献中对悖论的定义不同。笔者主张这一定义。

2

理发师悖论

某村有一理发师,恰给本村那些不给自己理发的人理发。请问他给不给自己理发?

若他给自己理发,则他是一个给自己理发的人。按照他的原则,他应该不给自己理发。矛盾。

若他不给自己理发,则他是一个不给自己理发的人。按照他的原则,他应该给自己理发。也矛盾。

这是一段有名的、非常有趣的推理。由于找不出矛盾的原因,这段推理就被称为 " 理发师悖论 "。

但真的找不出矛盾的原因吗?

本文的目的就是说明,其实这一矛盾的原因并不难察觉,故理发师悖论不足以称为悖论。

3

理发师悖论的解决

让我们把理发师悖论再叙述一遍:

某村存在一理发师,恰给本村那些不给自己理发的人理发。请问他给不给自己理发?

若他给自己理发,则他是一个给自己理发的人。按照他的原则,他应该不给自己理发。矛盾。

若他不给自己理发,则他是一个不给自己理发的人。按照他的原则,他应该给自己理发。也矛盾。

如果这一次还不容易看出矛盾的原因,请注意,第二次陈述时,把第一次陈述里的第三个字 " 有 " 换成了 " 存在 "。其他没动。

这样一换,是不是比较容易看出矛盾的原因了呢?

是的,应该说这样一换就比较容易看出,矛盾的原因是假设了这样一个理发师的存在。因此, 这一矛盾无非说明,具有这种性质的理发师(即恰给本村那些不给自己理发的人理发)在本村不存在罢了。

矛盾的原因找到了,悖论也就不成其悖论了,问题也就解决了。

4

文字游戏?

但矛盾的原因是怎样找到的呢?我们把 " 有 " 换成了 " 存在 "。这是不是文字游戏,是不是偷换概念,是不是改变了问题呢?

当然不是。" 有 " 就是 " 存在 "。把 " 有 " 换成 " 存在 ",没有改变问题,只是用语更科学、更醒目,使人注意到,原来这里隐藏着一个 " 存在 " 的假设。

假设,或者说前提,对推理是至关重要的。知道有假设,推出矛盾就不会大惊小怪,无非说明假设不正确罢了。但若不知道有假设,推出矛盾就会无法解释,就要惊呼为悖论了。因此,千万不要丢失、模糊任何假设。

5

引经据典

按说理发师悖论这样就解决了。不过人们可能不太放心,问题破解得太容易了:只换了一个词 " 存在 ",就启发、导致了答案。这个答案太平淡无奇了。

为了让人彻底相信,这个答案一点也不平淡,问题确实出在存在性上,让我们引经据典,回顾集合论创始人康托的一个定理。为此先要回顾一下集合论的几个概念:映射、满射、子集的集。

设 X 和 Y 为两个集。所谓一个从 X 到 Y 的映射 f: X → Y 是指一个法则,它对 X 中的每一 x,指定 Y 中唯一一个元素。这个为 x 指定的唯一元素称作 x 在 f 下的像,记为 f ( x ) 。称 X 为映射的定义域,Y 为映射的值域。如果值域 Y 中的每一个元素都是定义域 X 中某个元素的像,就称 f 是一个满射。如图所示:

理发师悖论真是一个悖论吗?

我们还需要一个概念:子集所成的集。设 X 为一个集。用 P ( X ) 表示集 X 的所有子集所成的集。例如,若 X={1, 2, 3},则

理发师悖论真是一个悖论吗?

6

康托定理

康托定理 对任何集 X,不存在从 X 到 P ( X ) 的满射。

证明 任取一个映射 f: X → P ( X ) 。要证 f 不是满射。为此令

理发师悖论真是一个悖论吗?

我们来证明,不存在 z∈X,使得 f ( z ) =C。

为此用反证法。假设存在 z∈X,使得 f ( z ) =C。那么,

若 z∉C,则 z∈f ( z ) 。但 f ( z ) =C,故 z∈C。矛盾。

若 z∈C,则 z∉f ( z ) 。但 f ( z ) =C,故 z∉C。也矛盾。

这说明不存在 z∈X,使得 f ( z ) =C。故 f 不是满射,康托定理得证。

康托定理是集合论最早,也最重要的定理之一。这个定理之优美,大概可以代表人类的智慧。这个定理一般放在大学数学系的三年级课程《实变函数论》中讲,但它几乎不用什么基础知识,是中学生可以理解、欣赏的。康托定理的陈述一般为," 不存在从 X 到 P ( X ) 的一一对应 ",但实际上不存在满射。不存在满射当然就更不存在一一对应。

7

康托定理与理发师悖论的比较

康托定理与理发师悖论有什么关系呢?

我们来给康托定理一个 " 理发 " 的解释。用表示该村的人的集。对每一村民 x,用 f ( x ) 表示村里被 x 理发的那些人的集,即 x 的 " 顾客集 "。那么康托所考虑的集合

理发师悖论真是一个悖论吗?

不存在 z∈X,使得 f ( z ) =C。翻译成理发的语言就是:

村里不存在这样的理发师,恰给本村那些不给自己理发的人理发。这是康托证明的一个深刻的事实。

让我们把康托推理的过程也翻译成理发的语言看看:

若 z∉C,则 z∈f ( z ) 。但 f ( z ) =C,故 z∈C。矛盾。(若他给自己理发,则他是一个给自己理发的人。按照他的原则,他应该不给自己理发。矛盾。)

若 z∈C,则 z∉f ( z ) 。但 f ( z ) =C,故 z∉C。也矛盾。(若他不给自己理发,则他是一个不给自己理发的人。按照他的原则,他应该给自己理发。也矛盾。)

可见,理发师推理就是康托推理。

8

评 述

那么,为什么康托定理与理发师悖论一个是定理,一个是悖论呢?

康托明确写道,这样一个 z 的存在只是假设。所以推出矛盾毫不惊讶,而是立即做出结论:不存在这样一个 z。

理发师悖论却用日常语言的 " 有 " 模糊了科学语言的 " 存在 "。" 存在 " 换成 " 有 " 以后,就不知不觉从假设变成了天经地义,于是矛盾无法解释,成了 " 悖论 "。可见,我们在前面把 " 有 " 换回成 " 存在 ",确实不是文字游戏。理发师悖论的问题确实出在存在性上。

但说 " 换回 " 对吗?谁先谁后呢?

康托定理(1895),理发师悖论(1907),康托在先。因此,说 " 换回 " 是对的。

康托深刻地证明了,不存在这样一个古怪的理发师。12 年后,理发师悖论全盘照收了康托的推理过程,却模糊了康托的存在性假设,致使矛盾无法解释,造成 " 悖论 "。

这不像个恶作剧吗?

9

关于罗素悖论

读者可能知道罗素悖论,听说过 " 理发师悖论是罗素悖论的通俗版 " 的说法。如上所述,理发师悖论几乎是对康托定理的一个恶作剧。那么罗素悖论呢?

这个问题留给读者追踪、思考最好。但急于知道答案是人类的优良天性,所以也简单说明一下:罗素悖论(1902)显然受到了康托定理的启发,但它与理发师悖论有很大的不同。它的假设隐蔽得多,以致当时的集合论无法察觉。当然该假设最终还是被后来的集合论彻底破解了,所以罗素悖论早已不再是悖论了。但罗素悖论极大地刺激了当时的集合论,对集合论的进步有重大的意义。

【后记】其实,像理发师悖论这样易于破解的 " 悖论 " 可以要多少有多少,都是对康托定理的恶作剧。比如 " 恰爱那些不爱自己的人 "," 恰恨那些不恨自己的人 "," 恰表扬那些不表扬自己的人 "," 恰批评那些不批评自己的人 "," 恰修理那些不修理自己的机器人 "," 恰引用那些不引用自己的书 ",等等等等。理发作为这些 " 反身及物动词 " 中的一个只是特别生动形象罢了。

原文地址:http://www.myzaker.com/article/632d7aab8e9f093ebd0ff4c3

版权声明:虚像 发表于 2022年9月23日 pm11:19。
转载请注明:理发师悖论真是一个悖论吗? | 快导航网

相关文章