在漫威大片《复仇者联盟 3: 终局之战》的结尾,托尼・斯塔克通过预先录制的全息影像向他年幼的女儿告别时说:“我爱你 3000 遍。”这个感人的时刻呼应了之前的一个场景,在那个场景中,两人正在进行有趣的睡前仪式,量化他们对彼此的爱。史塔克的扮演者小罗伯特・唐尼 (Robert Downey Jr.) 说,这句台词的灵感来自他和自己孩子的类似交流。这个游戏是探索大数字的一种有趣方式:
“我爱你十遍。”
“但我爱你一百遍。”
“好吧,我爱你一百零一遍!”
这正是“古戈尔普勒克斯(googolplex)”成为一个流行词的原因。但我们都知道这场争论的最终结果:
“我无限爱你!”
“哦,是吗?我爱你无限加一!”
无论是在操场上嬉闹时还是在睡前的交流中,孩子们早在数学课之前就接触到了无限大的概念,并顺理成章地迷恋上了这个神秘、复杂且重要的概念。有些孩子长大后成为着迷于无限大的数学家,有些数学家则发现了关于无限大的新奇事物。
你可能知道有些数字集合是无限大的,但你知道有些无限大比其他的更大吗?以及你知道我们并不确定在最熟悉的两个无限之间是否有其他无限吗?数学家们对第二个问题的思考至少有一个世纪了,最近的一些工作改变了人们对这个问题的看法。
为了解决无限集合大小的问题,让我们从更容易计数的集合开始。集合是对象或元素的集合,而有限集合正是包含有限数量对象的集合。
确定有限集合的大小很容易:只要数一数它包含的元素的数量。因为集合是有限的,所以你一定能数完,最终便能知道集合的大小。
这种策略不适用于无限集。下面是一组自然数,表示为ℕ。(有些人可能会说 0 不是一个自然数,但这种争论并不影响我们对无限的研究。)
这个集合有多大?因为没有最大的自然数,所以试图计算元素的数量是行不通的。一种解决方案是简单地声明这个无限集的大小为“无限大”,这并没有错,但当你开始探索其他无限集时,你会意识到这也不完全正确。
考虑一组可以用十进制(有限)展开表示的实数,比如 7,3.2,−8.015,或者无限展开表示的,比如由于每个自然数都是实数,所以实数的集合至少和自然数的集合一样大,也因此一定是无限大的。
但是,如果认为实数集的大小和自然数集的大小是相同的“无限大”,那就有些不完善了。为了证明这一点,随便选两个数字,比如 3 和 7。在这两个数之间总是有有限的自然数:这里是 4、5 和 6。但是它们之间总是有无限多个实数,比如 3.001、3.01、π、4.01023、5.666 等等。
值得注意的是,无论任何两个不同的实数彼此多么接近,中间总是有无限多个实数。虽然这个事实并不意味着实数集和自然数集的大小不同,但它确实表明这两个无限集有一些值得进一步研究的本质上的差异。
数学家康托 (Georg Cantor) 在 19 世纪末对此进行了研究。他证明了这两个无限集的大小确实不同。要理解和欣赏他是如何做到的,首先我们必须理解如何比较无限集。其中用到的“秘密手段”正是所有数学课的主要内容:函数。
有很多不同的方法可用于表示函数 —— 形如的函数表达式,笛卡尔坐标平面上的抛物线图,或者“将输入求平方并加 1”这样的函数对应关系等。但在这里我们将函数视为一种将一个集合的元素与另一个集合的元素相匹配的方法。
假设其中一个集合是ℕ,即自然数的集合。我们选取所有的偶数组成另一个集合并称它为 S。下面是我们的两组:
有一个简单的函数可以将ℕ的元素转换成 S 的元素:f (x)=2x。这个函数只是把它的输入翻倍,所以如果我们把ℕ的元素看作 f (x) 的输入 (我们称函数的输入集合为“域”),输出总是 S 的元素。例如,f (0)=0,f (1)=2,f (2)=4,f (3)=6 等等。
你可以把这一点进行可视化的展现:将两个集合的元素并排,并使用箭头表示函数 f 如何将ℕ的输入转换为 S 中的输出。
注意 f (x) 是如何将 S 中的一个元素对应到ℕ中的每个元素的。这就是函数的作用,但这里 f (x) 的做法很特别。首先,f 将 S 中的所有东西都分配给了ℕ中的对应元素。利用函数术语,我们说 S 的每一个元素都是函数 f 下 N 的一个元素的“像”。例如 S 中的偶数 3472,我们可以在ℕ中找到一个 x,使 f (x)= 3472 (即 x=1736)。在这种情况下,我们说函数 f (x) 把ℕ映射到 S 上。一种更花哨的说法是函数 f (x) 是“满射”的。无论如何描述它,重要的是:当函数 f (x) 将ℕ的输入转换为 S 中的输出时,S 中的任何内容都不会在这个过程中丢失。
关于 f (x) 如何将输出分配给输入的第二个特殊之处是,ℕ中的两个元素不会被转换成 S 中的相同元素。5 和 11 在ℕ中是不同的自然数,它们在 S 中的输出也不同:10 和 22。在这种情况下,我们说 f (x) 是“1 对 1”(也写为“1-1”) 的。我们将 f (x) 描述为“单射”。这里的关键是 S 中的任何东西都不会被重复使用:S 中的每个元素只与ℕ中的一个元素配对。
f (x) 的这两个特征以一种强大的方式结合在一起。函数 f (x) 在ℕ的元素和 S 的元素之间创建了一个完美的匹配。f (x) 是“满射”的,意味着 S 中的所有元素在ℕ中都有一个伙伴,而 f (x) 是“1 对 1”的,意味着 S 中的任何元素在ℕ中都没有两个伙伴。简而言之,函数 f (x) 将ℕ的每个元素与 S 中唯一的元素配对。
同时是单射和满射的函数称为双射,双射在两个集合之间创建了 1 对 1 的对应关系。这意味着一个集合中的每个元素在另一个集合中都恰好有一个对应元素,这是表明两个无限集合具有相同大小的一种方法。
由于我们的函数 f (x) 是一个双射,这表明两个无限集ℕ和 S 的大小相同。这似乎令人惊讶:毕竟,每个偶数自然数本身也是自然数,因此ℕ包含了 S 和更多的内容。ℕ不应该比 S 大吗?如果我们处理的是有限集,答案是肯定的。但一个无限集可以完全包含另一个无限集,同时它们的大小又是一样的。就像“无限加一”并不比普通的“无限”更有爱一样,这只是无限集众多令人称奇的性质之一。
更让人惊讶的是,存在无数个不同大小的集合。前面我们探讨了实数和自然数的无限集的不同性质,康托证明了这两个无限集有不同的大小。他用巧妙而著名的对角线论证做到了这一点。
因为任意两个不同实数之间都有无限多个实数,我们现在只关注 0 到 1 之间的无限多个实数。这些数字中的每一个都可以被认为是 (可能是无限的) 十进制展开式,就像这样。
这里、、等等只是数字符号,但我们要求并非所有的数字都是 0,所以我们不把数字 0 本身包含在集合中。
对角线论证从一个问题开始:如果自然数和实数之间存在双射会发生什么?如果存在这样一个双射,那么两个集合的大小将相同,你可以使用该函数将 0 到 1 之间的每个实数与一个自然数匹配。你可以想象一个有序的匹配列表,像下面这样:
对角线论证的天才之处在于你可以用这个列表构造一个不可能在列表上的实数。按照以下方法逐位构建一个实数:小数点后的第一个数字与不同,第二个数字与不同,第三个数字与不同,依此类推。
这个实数由它与列表对角线的关系定义。那么它在列表上吗?首先它不可能是列表中的第一个数字,因为它的第一个数字不同。而它也不能是数列上的第二个数字,因为它的第二个数字是不同的。事实上,它不可能是这个数列上的第 n 个数,因为它的第 n 位数字不一样。这对所有 n 都成立,所以这个在 0 到 1 之间的新数,不可能在列表中。
但是在 0 到 1 之间的所有实数都应该在列表上!这个矛盾产生于这样一个假设: 自然数和 0 到 1 之间的实数之间存在双射。因此,不存在这样的双射。这意味着这两个无限集有不同的大小。再利用函数做一点工作就可以证明,所有实数的集合与 0 到 1 之间的所有实数的集合大小相同,因此包含自然数的实数必须是一个更大的无限集。
表示无限集合的大小的专业术语是它的“基数”。对角线参数表明实数的基数大于自然数的基数。自然数的基数写为ℵ0,读作“aleph 0”。从数学的标准观点来看,这是最小的无限大基数。
下一个无限基数是ℵ1 (“aleph 1”),且一个说起来简单的问题困扰了数学家一个多世纪:ℵ1 是实数的基数吗?换句话说,在自然数和实数之间还有其他无限吗?康托认为答案是否定的 —— 这一论断后来被称为连续统假说 —— 但他无法证明这一点。在 20 世纪初,这个问题被认为十分重要,以至于当大卫・希尔伯特 (David Hilbert) 开列著名的 23 个重要数学开放问题的清单时,把连续统假设排在第一位。
一百年后,人类取得了很大的进步,但这一进步也带来了新的谜团。1940 年,著名的逻辑学家库尔特・哥德尔证明,在普遍接受的集合论规则下,不可能证明自然数和实数之间存在无限大。这似乎是证明连续统假设成立的一大步。但 20 年后,数学家保罗・科恩证明了,要证明这样的无限不存在是不可能的!原来连续统假设无论如何都不能被证明。
这些结果共同确立了连续统假说的“独立性”。这意味着普遍接受的集合规则并不能充分说明自然数和实数之间是否存在无限大。但它并没有使数学家们在对于理解无限大的追求过程中灰心丧气,反而把他们引向了新的方向。数学家们现在正在寻找无限集的新的基本规则,(希望这些规则) 既能解释已知的关于无限的东西,又能帮助填补空白。
说“我对你的爱是独立于公理之外的”可能没有说“我爱你无限大加一”那么有趣,但它可能会帮助下一代热爱无限大的数学家睡个好觉。
练习
1.设 T={1,3,5,7,…},即正奇数自然数集。T 的元素个数是大于、小于还是和自然数集 N 一样大?
答案:同样的尺寸。您可以使用函数 f (x)=2x+1 将 N 中的元素映射到 T 中的相应元素,这以一种同时具有满射 (onto) 和单射 (1-1) 的方式实现。这个函数是 N 和 T 之间的双射,由于存在双射,所以集合的大小相同。
2.找出自然数集合ℕ和整数集合 Z={…,−3,−2,−1,0,1,2,3,…} 之间的 1 对 1 对应关系。
答案:一种方法是将配对列表可视化,像这样:
你还可以尝试定义一个与元素匹配的函数。函数
将ℕ映射到 Z,是一一对应的。所以整数的数量和自然数一样多,这是另一个关于无穷大的神奇结论。
作者:Patrick Honner
翻译:C&C
审校:云开叶落
原文链接:how big is infinity
本文来自微信公众号:中科院物理所 (ID:cas-iop),作者:Patrick Honner