想象一下,有这样一家有无穷多房间的旅馆。当你到了这家酒店时,房间已经住满了(可能他家有很大一本待客名册),你需要接待员为你找一间房子。这位接待员很聪明,他让酒店1号房间的客人搬进2号房间,而2号房间的客人搬入3号房间——也就是说在n号房间的客人搬入n + 1号房间。可以想象他们一起搬移时的场景。当所有人安置好后,1号房间就空出来了,所有房客也都安排妥善。很好,这个例子展示了∞ + 1 = ∞。
在一个有无限多房间但已满房的酒店,你永远可以多找出一个房间。
大卫·希尔伯特,二十世纪最伟大和最高产的数学家,在讲座“超越无限(Über das Unendliche)”中通过引入这个例子来解释最反直觉的概念无限集合和超限算术(transfinite arithmetic)。希尔伯特希望能以此展示“无穷”这个概念以及利用它来计算的合理方法。他说“不要惧怕它”,而是系统地、全方位地接受它。
格奥尔格·康托尔无穷(infinity,∞)此前在数学上一直被视为“禁忌”,第一批试图在坚实基础上建立起这个概念的数学家像格奥尔格·康托尔,曾受到严厉的批评;而希尔伯特却仍在这个理论中发现了魅力。从反直觉的无限集合中产生的一些问题,通过维基百科这样表述:存在有无穷多的房间的情况下,“每个房间里都有一位客人”和“不能有更多客人可以被容纳”的表述是不等价的。
无穷大并非是一个实数或者复数,所以当遇到表述∞ + 1 = ∞时需要特别注意,这个等式在我们定义计算的“数空间”(number space)前是没有任何意义的。但是我们当然可以假定有这样一个扩展空间以便我们对∞进行加减运算。
说回这个思想实验,当有k个客人到达这个满房的酒店,而我们需要另外k个房间要怎么办呢?
还是一样的,我们只需要让入住的每个房间的客人搬入现在房号+k的房间就可以了,这样前k个房间就空下来、可以入住了。比如说如果有三个人来到这个酒店,每个人需要一个房间,那么1号房间的客人就需要搬入4号房间,而2号房间的客人需要搬到5号房间,以此类推。但又怎么理解∞ - 1呢?
在无穷酒店,我们只需要让1号房间的客人离开酒店,再让2号房间的住客搬入1号房间,3号房间的住客搬到2号房间,于是我们又得到了一个∞:∞ - 1 = ∞。达到无穷目前还没有什么问题。
但是如果说,又来了无穷多个客人呢?这里所说的“无穷多”是可数的无穷多,从数学上来讲,就是说可以用正整数对它们一一标记。这次就不能像之前一样,将所有宾客做一个无穷大的挪动了。
但我们可以把1号房间的客人挪到2号房间,而2号房间的客人挪到4号房间,也就是说,n号房间的客人挪到2n号房间。这个过程不需要考虑住在一个很大号码的房间的客人需要搬到更大号码房间的难度——我们只需要知道这在数学上是完全可行的。现在所有奇数号码的房间就空出来了,可以安置所有新来的宾客。
上面的过程实际上是在说,这个无穷自然数集合的“尺度”——称为基数(cardinality,或者称为“势”)和偶数自然数集合的基数相同(尽管它是自然数集合的一个子集)。这是不是就意味着,自然数和偶数自然数的数目是一样的?呃,其实,确实是这样的。在数学中,这种情况下定义函数f(n) = 2n表示偶数自然数和自然数的对应关系,来比较两个无限集合。
这个函数有一个反函数,g(n) = n/2,代表从偶数自然数到自然数的对应关系。此外,f具有双射(bijective)的性质,意味着所有的偶数自然数都是以自然数作自变量的f的值,而且每一个偶数自然数有且最多有一个这样的自变量与之对应。这样的对应关系被称为“一一映射”,同时也是满射,就是两个集合中的函数映射可以按元素配对。
想象一下,如果你不会计数但需要对比两堆石头哪一堆比较多,该怎么办?这时,你可以将两堆的石头不断地两两配对,直到只剩下一堆石头或是一个也不剩,然后停止组合。如果只有一堆留下一堆石头有更大初始数目;如果两堆完全可以两两配对,最终完全匹配,就说明两堆石头的初始数目相同。我们利用这个概念来对比两个无限集合,和上面石头的场景完全相同。只不过配对不发生在石头间而是双射函数间。
那如果来了无穷多辆可以载无穷多客人的巴士,我们需要为所有客人分别预定一间房呢?没有问题!先将每辆巴士和上面的每个座位用自然数标号(毕竟在可数的无限集合范围内),对应的每个人就有一个由两个数字组成的独一无二的“地址”:一个数s代表巴士上的座位号码,另一个数b代表巴士的标号;令酒店中的住客的巴士号b = 0。只需要把每个人安排到房号是2^s · 3^b的房间就可以了。
比如说在房间号码1119744 = 2^9 · 3^7的客人对应的是7号巴士的9号座位。这个情形可以利用素数推广至更多层。
举个例子,如果有无穷多艘渡轮,每艘上面载了无穷多辆巴士,每辆巴士上坐有无穷多个乘客,那么我们仍然能够像上面那样扩展酒店来安排住客,只需要引入素数5到对应的运算中。已有的三层无穷大嵌套或是更多有限层的嵌套都可以通过这种方式求解——毕竟素数也是无限多的,我们实际上用不完。
素数分解方法只是解决这个问题的众多方法之一,但起码可以解决,问题是如果嵌套的层数是无穷多的呢?这种问题就不一定能被解决了。这是因为有些无穷大更大!没错,当引入集合的“尺度”或者说基数的问题时,无穷大就不仅仅是无穷大了。例如,所有分数(分子分母都为整数)的集合和自然数集合的基数是一样的。没错,分数和自然数的数量是一样多的,虽然自然数也可以用分数表示。
读者可以通过寻找两个集合间的双射来证明,也就是将两个集合中的每个元素两两配对,寻找到一种一一映射的关系。如果自然数集和给定集合A之间存在双射,那么集合A就是可数的,A的基数为自然数基数,记作ℵ₀。有些无穷大要“更大”,于是就会留下一些后续有趣的问题——比自然数基数要更大的集合有哪些呢?不可数的集合长什么样子?有多少不同的无穷大呢?比自然数基数更大的集合中,一个很好的例子是被记为ℵ₁的实数集。
这个集合是不可数的,也就是说ℵ₁和ℵ₀之间不存在双射的对应。实数集中除了包括所有的分数,也包括像π和e这样的不能被写成由整数构成的分数形式的数。研究在自然数和实数的基数之间是否存在其他无穷大的问题被称作连续统假设(continuum hypothesis),但在我们现有的公理化体系中这个假设不能被证明真伪。
这样的边缘哲学问题就涉及到元数学和数理逻辑了,这个学科中我们可以讨论是否需要寻找可以替代的公理系统来解决这个问题,然后创造出一个完全不同的数学体系。如果再深入的话,我只能说很有趣!此外,无穷大的种类也有很多,所以我们到底在说哪一种啊?