在文章的最前面我们提到过,从直觉上说来,自然数的个数应该是正偶数的两倍,这里难道没有一点合理的因素在内吗?有时我们会听到数学家说:“几乎所有的自然数都不是素数。”如果按照一一对应的原则,素数和自然数是一样多的(第一个素数2对应1,第二个素数3对应2,第三个素数5对应3,……第n个素数对应n,……),这不矛盾吗?
数学并不依赖于直觉,但是尊重直觉,直觉中常常包含着合理的因素。受过数学训练的人对数学的直觉一般来说要比其他人更有合理性,数学大师能够用直觉把握住很深刻的数学理论,他们有时会说:“虽然我还没有一个严格证明,但是我知道它是对的。”数学大师的直觉当然不是每个人都能模仿的,但是我们的确可以改变对一些数学物体的想像方法,来改善自己的直觉,使得它更有合理性。
当我们谈到集合的大小,这里所谈论的集合应该是没有附加的数学结构的。当所比较的集合都是自然数的子集时,直觉往往会偷偷地把自然数的数学结构加在上面。什么是数学结构?让我们先从最一般的集合说起。当我们谈论集合时,我们只应该把它看做一个装着元素的大袋子,里面的元素之间没有任何联系,比如说自然数集合,我们应该想像那是一个装了标了号的球(或者其他什么)的大袋子,球和球之间并没有什么联系,10并不一定非得在100的前面出现,如果你把口袋使劲抖抖,里面的球有些翻上来有些被压到底下去,但这并不改变这个集合——这仍然是自然数集合。
所谓的结构,就是在元素间增加联系,使得它们不能随便乱动。建筑工地上搭的脚手架就是一种结构,上面的钢管啊铁丝啊木板啊都不是随随便便堆在一起的,而是按照一定的方式联系在一起。修建完了一幢大楼后,工人们会把它们都拆下来再拿到另一个工地上去安装使用,虽然构成脚手架的元素——钢管铁丝木板还是原来的那些,但是脚手架却完全是另一个了,变化了的其实是结构。
数学结构也一样。比如说上面我们讲的序关系,就是元素之间的一种联系。我们可以很方便地验证自然数的大小满足我们前面所说的偏序关系的三个条件,而且每两个自然数之间都可以比较大小,所以在自然数集合上有一个全序关系,这个关系就给了自然数集合一个结构,就叫序结构。你可以把拥有全序结构的自然数集合仍旧想像成上面那个装了球的袋子,只是这时候那些球已经被从小到大串成了一串,不能随便乱跑了。平时我们想像自然数集合,可能会把它想成数轴上离原点越来越远的一串点,或者1、2、3、……这样从小到大的一列数,不知不觉地,我们已经把序结构想像进去了。当我们感到“正偶数的个数应该是自然数个数的一半,因为每隔一个数就有一个是偶数”,我们是在想像那条串成一串的球,偶数球得老老实实地和奇数球一个隔一个地串在一起,而不是杂乱无章放在袋里,后面这种情况是谈不上“每隔一个”的。
在考虑到自然数的序结构后,我们就可以给“自然数的个数是正偶数的个数的两倍”这种直觉一个合理的解释了。考虑小于100的正偶数,一共有49个,所以占小于100的自然数的49/99,接近1/2;如果把“小于100”改成“小于1000”,那么结果是499/999,更接近1/2了;把上面的100和1000换成越来越大的数字,我们会发现正偶数所占的比例会越来越接近1/2。这就提示我们可以采用这样一种关于自然数的子集的大小的定义:如果A是自然数的一个子集,令p(n)为A中小于n的元素的个数,我们称limn→∞p(n)/n(就是当n趋向无穷大时,p(n)/n的极限)为A相对于自然数集合的大小。在这个定义下,正偶数集合相对于自然数集合的大小就是1/2。按照这样的定义,素数集合相对于自然数集合的大小是0,这也就是所谓的“几乎所有的自然数都不是素数”。用上面这个方法还可以比较两个自然数集合的子集的相对大小,具体方法就由读者自己来思考了。
如果没有自然数序结构这个“背景”,我们就只能够使用一一对应的方法来讨论集合的基数,那种“自然数的个数是正偶数的个数的两倍”的直觉只是一种错觉。比如说考虑下面平面图上,所有(2n,n)这样的点所组成的集合(其中n是自然数)。如果站在x轴的角度来看,我们发现每隔一列就有一个点,而列数显然和自然数一样多,所以点数就该和正偶数一样多;如果站在y轴的角度来看,我们发现每行都有一个点,而行数也和自然数一样多,所以点数就该和自然数一样多。按照集合基数的观点,自然数和正偶数一样多,上面这种情况完全不造成矛盾,但是“直觉”所给予的一会儿“一样多”一会儿“两倍”的印象,就没有太大的意义了(最多得到“两倍的无穷大等于无穷大”这种我们按照一一对应原则早已熟知,而且解释得更好的观点)。
除了序结构外,还有其他的数学结构。法国著名的布尔巴基学派就认为数学基于三种母结构:序结构、代数结构和拓扑结构,各种数学结构可以混杂在一起得出不同的数学对象,比如说实数集上有比较大小的序结构,还有由算术运算(加和乘,减和除是它们的逆运算)定义的代数结构,以及由极限理论(它规定了某些点必须在另一些点的“附近”)定义的拓扑结构。布尔巴基学派试图用结构主义的观点来统一数学,出版了著名的《数学原理》。结构主义的观点大致来说,就是数学结构决定数学对象。两个分别定义在两个不同集合上的数学对象,如果它们的数学结构相同,那么即使集合中的元素很不相同,它们其实也是同一个数学对象。在数学中我们有时会碰到“同构”这个词,就是指在某种一一映射下,两个数学对象的数学结构相同。
举一个简单的例子。中学里我们学过复数和它的几何表示法,知道每个复数都可以对应到直角坐标平面上的一个点,而复数的加法和乘法也都有各自的几何意义。在这里,一个复数是a+bi这样的一对数,还是平面上的一个点(a,b)并不是关键,尽管一对数和一个点是完全不同的两样东西,只要在实数对集合和平面点集上面由加法和乘法决定代数结构是相同的,它们都可称作是复数,是同一个数学对象。相反地,如果我们在平面上定义另一种乘法为(a1, b1)×(a2, b2)=((a1×a2, b1×b2),那么尽管平面上的点仍旧是那些,但是因为在上面所定义的数学结构变了,于是就完全是两种不同的数学对象了。
像上面这样的例子中数学结构的相同当然很直观,而有一些此类问题则牵涉到极其深刻的数学理论,比如说著名的庞加莱猜想就是问,是否任意闭单连通3维流形都同胚于3维球,换句话说,是否给定了“闭单连通”这个条件,在3维流形上就只能有一种拓扑结构,也就是3维球的拓扑结构?另外,证明两个原来似乎没有关系的数学对象的数学结构其实是相同的,意义非常重大,这样的定理是连通两个数学领域的桥梁。这意味着这两个数学对象其实是同一种东西,对于其中一个数学对象成立的理论,可以立刻应用在另一个上面;以往用来研究一种数学对象的方法,就可以被用来研究另一类数学对象。本文开头说到英国数学家怀尔斯证明了费尔马大定理,他证明的其实是更一般的“谷山-志村猜想”。这个猜想就是此类意义重大的命题,它沟通了两个数学领域:椭圆曲线和模形式。它的证明被称为是“人类智慧的凯歌”。
最后举个搞笑的例子。网上有人发现了下面两张图片,左边是变形金刚的电影招贴,右边是蓝猫的广告,构成画面的元素不同,一个是机器人,一个是蓝猫和它的朋友,但是摆的“甫士”和画面结构却相同,也算是个不光彩的“同构”例子吧。
“一个平面上的点应该比一条直线上的点的个数多”这样的直觉也可以用附加的数学结构来解释合理性。当我们想像直线或平面上的点时,我们不但想像了那些点集,同时也在想像着这些点集构成的直线和平面,于是它们就再不是那些集合中散乱的点了,它们的排列非常有规律。换句话说,我们在点集上增加了决定直线和平面的数学结构。如果我们把直线和平面看作是实数域上的线性空间,我们就遇见了一些数学结构:首先我们需要一个实数域,上面有一个域的代数结构,其次我们在直线和平面的点集上定义了一个交换群的代数结构,最后在实数域和交换群上定义了称作“数乘”的代数结构,这个代数结构同域和交换群上的各种运算都兼容,这样我们最终得到了这个被称为“实数域上的线性空间”的代数结构。上面这一串话也许有点复杂,但是中心思想就是上面所说的结构主义的思想:数学对象是由各种数学结构混杂在一起(当然要合理地混杂在一起,上面所说的“兼容”就是这个意思)而得到的。一旦我们这样规定了线性空间的结构,我们就可以定义线性空间的维数,这时我们可以说,两维的线性空间(平面)在这种意义下要比一维的线性空间(直线)大。
从上面两个例子我们看到,当集合中的元素只是被看做一个没有任何数学结构的集合中散乱的元素时,我们只能用一一对应的方法来比较集合的大小;而当丰富多彩的数学结构被加在集合上时,我们才有可能用更精细和更符合直觉的手段来定义不同的比较集合大小的方法。