基数与序数
数可以分为基数和序数,所谓基数就是指表示物体数量多少的数,而序数则是按照一定顺序排列下来的第几第几。1,2,3这种有限的数字既可以作为表示数量的基数,也可以作为表示第几第几的序数。在有限的范围之内,基数与序数遵循同样的运算规则。那么现在,让我们看看面对无限的情况时会怎么样? 按照基数的定义,它表示集合内元素的数量。要比较两个基数的大小,就要比较这两个集合里元素的多少。当两个集合内的元素是有限的时候,我们可以很自然的比较出它们元素的基数大小。可是当两个集合都是无限的时候,我们又该如何比较这两个基数的大小呢? 康托尔告诉了我们一种方法,那就是如果可以找到一种对应方法,使得两个集合中的元素可以一一对应,也就是这两个集合之间存在双射,那么这两个集合的势相同,它们的元素的基数一样大。这会产生一些反直觉的“悖论”,比如偶数和整数一样多,和自然数也一样多。 一般的,我们把自然数集的基数写作ℵ₀ , ℵ₀ 是最小的无穷基数。对于 ℵ₀ 而言,我们有 ℵ₀ +1= ℵ₀ ,这意味着对于一个有着无穷个元素的集合,向其中再加入一个元素也并不能改变该集合的势。 而对于序数而言,情况又有所不同。因为相比于基数,序数多了“顺序”这一属性。既然我们要对集合中的元素添加“顺序”这一属性,那么我们首先应该定义什么是“顺序”。从直观上来说,“顺序”就是把集合中的元素按照某种规则排成一串。但是这样的定义显然不够严谨和规范。看看数学家们是怎么定义的:集合中任意的两个元素都能按照某种方式比大小,这种比大小的关系,称为“序关系”,经常用“≤”符号表示。这种比大小的关系还应该符合下面的三点: (1)传递性:如果a≤b,且b≤c,则a≤c。 (2)完备性:a≤b或者b≤a,不存在无法比较的情况。 (3)反自反性:如果a≤b且b≤a,则a=b。 上面的这三点是非常自然的,我们熟悉的自然数集和实数集都符合这些性质。对一个集合中的元素进行比大小的这种操作被称为“全序关系”。 但是我们希望能按照元素的大小关系从小到大开始数数,因此我们还应该对这个集合进行限制,那就是这个集合的任意非空子集必须要有一个最小的元素。当某个集合具有某种全序关系,且在此全序关系下其任意非空子集有最小元素时,我们称这个集合为“良序集”。“良序”可以从字面上理解就是这个集合的性质优良。比如自然数集就是一个良序集,而整数集不是。 一个序数以及小于此序数的所有序数应当可以一一对应于一个良序集合中的所有元素。很明显,对于任意的自然数n,它都是一个序数,因为从1到n必然可以构成一个良序集,但是这只是有限集的情况。全体自然数能否对应一个序数呢?当然是可以的,我们前面已经说过了,自然数集也是一个良序集。于是我们就这样得到了第一个无穷序数ω。 现在让我们考虑一下这件事:怎么在自然数集中增加一个元素,从而使得集合对应于一个比ω更大的序数?听上去这似乎不可能,但是康托尔做出了这个不可能的操作:在所有自然数之后添加一个元素!之所以要在自然数的“后面”添加一个元素,原因在于我们希望得到一个比自然数集更大的良序集。 由于我们之前一直在讨论集合,而集合之间又恰好有一种比较大小的方法,那就是“子集”这种包含关系。所以我们可以用集合把序数表示出来。最开始,很自然的序数0对应于空集{Ø}。序数1就是有一个元素的集合,即1={0},序数2={0,1},序数3={0,1,2}......那么自然数集N对应于哪个序数呢?答案是ω。现在,我们把ω再加入到N中会怎么样?我们会得到{0,1,2,3,4......ω}。这是良序集吗?稍加分析就可以发现其中的任意两个元素都可以进行比较,而且其他所有元素都是ω的子集,ω在排序时应该排在最后,所以我们成功的在所有自然数的后面添加了一个元素。{0,1,2,3,......ω}是一个比N更大的良序集,其所对应的序数自然应该比ω更大,我们可以用ω+1表示。 值得注意的一点是,1+ω≠ω+1,超限序数的运算不满足交换律,具体原因我下篇文章再讲。有了ω+1之后,我们继续重复上面的做法,就可以得到ω+2,ω+3,ω+4......ω+ω=ω×2,ω×3,ω×4......ω²,ω³,ω⁴......ω^ω,ω^ω^ω,ω^ω^ω^ω……ω^^ω=ε₀。 最后,让我们总结一下:(1)从空集开始,在后面写更多的集合,要求是每一个集合都以之前所有的集合为其元素。那么这些集合都是有穷序数。(2)定义一个序数,它包含所有有穷的序数,这个序数就叫ω,它是一个无穷序数。(3)定义一个序数ε₀,它使得ω^ε₀=ε₀。从ε₀开始,继续上面的操作。(4)所有序数都是良序集合,且它们之间都有良序关系。即它们互相之间都有包含关系,并且最小的序数就是空集。大数数学中常用序数来表示一个函数增长的快慢(不是导数),这个我下篇文章再讲。