Cantor-Bernstein 定理(给出双射!)
By 苏剑林 | 2014-09-19 | 53052位读者 |学过集合论的朋友应该会知道,按照定义,判断两个集合的“势”相同的最直接的方法就是给出这两个集合之间的一个双射。然而,这样的双射往往不容易想到,比如
请给出一个[0,+∞)到(0,+∞)的双射
但是,直观地看,这两个集合的势一定是相当的,而且这两个集合之间的双射有无穷多个。然而,大多数的我们却很难想出一个双射来。当我们看到构造出来的双射时,第一反应往往是:这样的证明是怎么想到的!?比如,上述问题的答案之一是:
h(x)={x2+1,x=0,1,2,5,26,677,…x,x∈[0,+∞)且x≠0,1,5,26,…
其中序列0,1,2,5,26,677,…的后一项是前一项的平方加1。这样构造出来的双射无疑会让我们惊叹!
直观分析
怎么样才能构造出这样的双射来呢?想法是很美妙的。首先,假设集合A和B的势相当,虽然A↦B的双射不容易给出,但是A↦B的一个单射f通常是很容易给出的,也就是给出A到B的一个子集的双射;同样地,我们也可以给出B↦A的一个单射g。一个很“经济”的想法是:能否用f和g−1“拼凑”出A↦B的一个双射来?
答案是肯定的,这就是被我们称之为“Cantor-Bernstein定理”的内容!下面我们来简单描述一下其中的思想。
Step One:先考虑B↦A的双射g,g的值域是g(B),也就是说,g−1的定义域最多是g(B),这样一来,A↦B的双射中,A−g(B)的那部分,只能由f来定义,记C0=A−g(B)。
Step Two:如果C0=∅,那么双射就可以只由g−1定义了。如果C0≠∅,那么C0部分就得由f定义。但是,这不意味着剩下部分就由g−1定义了。因为剩下部分(也就是g(B))通过g−1可以映射到整个B,而且f又将C0映射到部分的B,这样一来构造出来的就不是双射了。
Step Three:为了消除Step Two的困难,唯一的办法就是将f的定义域扩大一点,将g−1的定义域缩小一点。因为既然C0部分已经必须由f定义了,那么要更改的只能是增大f的定义域。C0在B中的像(值域)就是f(C0),我们不能让g−1的像跟它有交集(g−1的像就是g的定义域,g−1的定义域就是g的像),那么就是说从g−1的定义域(即g的像g(B))中扣除g(f(C0))=C1这部分即可,扣除了之后,g−1(x)不再可能属于f(C0);
Step Four:但是,现在扣除了C0的影响了,却多出了C1出来,我们必须用同样的技巧扣除C1的影响,但这必然会产生C2=g(f(C1))的影响......直至无穷。扣除了这无穷的影响后,得到的就是合理的双射了。
用数学的语言表述如下:
h(x)={f(x),x∈Cg−1(x),x∈A−C
其中C=∞⋃n=0Cn,Cn+1=g(f(Cn))。
可以证明,这就是A↦B的一个双射。具体证明这里就不写出来了,读者可以参考维基百科的“康托尔-伯恩斯坦-施罗德定理”条目。
例子演示
现在我们来看如何给出[0,+∞)到(0,+∞)的一个双射。记
{f(x)=x2+1,x∈[0,+∞)g(x)=x,x∈(0,+∞)
f,g分别是[0,+∞)↦(0,+∞)、(0,+∞)↦[0,+∞)的单射,g−1(x)=x。可以算得:
C0=[0,+∞)−(0,+∞)={0}C1=g(f(C0))={1}C2=g(g(C1))={2}…
所以
C=∞⋃n=0Cn={0,1,2,5,26,677,…}
于是可以得到双射
h(x)={x2+1,x=0,1,2,5,26,677,…x,x∈[0,+∞)且x≠0,1,5,26,…
转载到请包括本文地址:https://spaces.ac.cn/archives/2951
更详细的转载事宜请参考:《科学空间FAQ》
如果您还有什么疑惑或建议,欢迎在下方评论区继续讨论。
如果您觉得本文还不错,欢迎分享/打赏本文。打赏并非要从中获得收益,而是希望知道科学空间获得了多少读者的真心关注。当然,如果你无视它,也不会影响你的阅读。再次表示欢迎和感谢!
如果您需要引用本文,请参考:
苏剑林. (Sep. 19, 2014). 《Cantor-Bernstein 定理(给出双射!) 》[Blog post]. Retrieved from https://spaces.ac.cn/archives/2951
@online{kexuefm-2951,
title={Cantor-Bernstein 定理(给出双射!)},
author={苏剑林},
year={2014},
month={Sep},
url={\url{https://spaces.ac.cn/archives/2951}},
}
July 21st, 2015
高,很高!
December 2nd, 2019
读了好多版本,直到读到此文,太好了,终于读懂了。
March 16th, 2022
x+1是不是也行?
可以,事后来看,无非就是找出一个可数列,然后让可数列之间重新建立双射,而剩下部分直接恒等映射。