第2章

    无理数和超越数

    从1,2,3…开始数起,只要我们愿意就可以一直数下去。这些数就是我们熟知的基数、整数,或者说自然数。它们看起来确实相当自然,因为宇宙中有很多我们可以计数的物体。自然数也许是早期人类想象出的第一个数学对象。一些动物似乎也有数的概念,只要这些数不是太大。

    几百年来,零一直不算作自然数,甚至至今也没有共识。(在教科书的数论部分,作者通常会在第一页标明是否将零归入自然数。)负整数位于零的另一侧,正整数、负整数及零共同构成了整数集合。整数在正负两个方向趋向无穷大:

    … -3 -2 -1 0 1 2 3 …

    我们将从1开始的所有正的整数称为正整数。对于那些从零开始的正整数集合(即0,1,2,3,…),可以称为非负整数,既明确,也不会太冗长。

    有理数是可以表示为两个整数之比的数,但是分母不能为零。例如,

    第2章无理数和超越数 - 图1

    是一个有理数,它也可以写成小数形式:

    0.6

    有理数包含所有整数,因为任何整数(例如47)都可以写成分母为1的分数形式:

    第2章无理数和超越数 - 图2

    任何有限小数也是有理数。例如,

    -23.45678

    可以写成比的形式:

    第2章无理数和超越数 - 图3

    有些有理数,例如:

    第2章无理数和超越数 - 图4

    的小数形式会写成无限循环小数:

    0.3333333333…

    因为它能写成比的形式,所以仍然是个有理数。实际上,任何无限循环小数都是有理数,下面这个数,

    0.234562345623456…

    如果23456会重复出现,那么它就是个有理数。为了证明这个数是有理数,我们用x表示这个数

    x=0.234562345623456…

    然后等式两边同时乘以100000:

    100000x=23456.23456234562346…

    我们知道,等式两边同时减去相同数值,等式仍然成立。也就是说,在第二个等式中,可以让等式两边的数同时减去第一个等式的数:令10000x和23456.23456…分别减去x和0.23456…,这样分数部分就消失了:

    99999x=23456

    所以:

    第2章无理数和超越数 - 图5

    这是一个整数比,所以它是有理数。

    大致看来,有理数集似乎是完备的。如果把两个有理数相加,结果还是有理数;同样,将有理数相减、相乘或相除,结果仍然是有理数。

    也许有人会想(就像以前人们那样),所有的数都是有理数,但是如果考虑这个直角三角形的斜边:

    第2章无理数和超越数 - 图6

    根据勾股定理,

    x2=12+12

    即:

    x2=2

    也即:

    x=第2章无理数和超越数 - 图7

    是否存在某个整数与整数的比值,当它乘以自身时等于2?当然,人们可以找到许多非常接近的有理数。下面就是个例子:

    第2章无理数和超越数 - 图8

    这个有理数很接近,只差一点点了。当它乘以自身时得到1.999 95。如果我们继续寻找,也许可以找到一个完美的答案。

    但也许我们这样做只是在浪费时间?

    证明一些东西不存在是很困难的,但是数学家们发明了一种在类似情况下巧妙解决问题的证明方法。这个方法叫做间接证法,又称归谬法、背理法。先提出一个假设,然后根据这个假设进行符合逻辑的推理,直到推出一个矛盾的结论。这个矛盾的结论说明我们最初的假设是错误的。

    归谬法看起来拐弯抹角,但是它在现实生活中的应用也许比我们想象的更普遍,“不在场证明”就是一种归谬法。如果被告人被怀疑在犯罪现场,而案件发生时他在自己母亲的家里,那么就意味着他在同一时间出现在了两个地方,这是荒谬的。

    我们假设2的平方根是有理数。因为它是有理数,所以存在整数a和b,使得:

    第2章无理数和超越数 - 图9

    a和b是否都是偶数?如果是,同时除以2并且用得到的数来代替a和b。如果得到的数仍然是偶数,再除以2,一直持续做,直到a和b至少有一个是奇数。

    等式两边同时平方:

    第2章无理数和超越数 - 图10

    即:

    a2=2b2

    注意,a的平方是b的平方的2倍,这就说明a的平方是个偶数,而要想a的平方为偶数,a必须为偶数。先前我们推导出a和b不可能都是偶数,所以我们知道b是奇数。

    如果a是偶数,它应该等于某个数的2倍,我们称这个数为c:

    (2c)2=2b2

    即:

    4c2=2b2

    也即:

    2c2=b2

    这说明b的平方是偶数,也就是说b是偶数,这与我们先前的假设“a和b不能都为偶数”相悖。

    因此,原来的假设“2的平方根是有理数”是错误的。毫无疑义,2的平方根是无理数。当它以小数形式呈现时,这些数字将无序地排列下去

    1.4142135623730950488016887242097…

    这个数只能在有无限的纸张、无数的笔和无限的时间下才能准确地表达。我们只可能把它写成近似值,并用一个省略号来承认我们的失败。要想用有限的方式表达这个数,最贴切的方法是提供计算这个数的算法。(这正是我要在第6章详细阐述的。)

    我们用“有理”和“无理”来形容一个数,仿佛数字真的会疯掉一样。其实,这是有历史原因的。有时无理数也称为“不尽根”(surds),这个词和“荒谬”(absurd)有关。古希腊人对无理数并不陌生,但不怎么喜欢它们。据说(无可靠历史依据),毕达哥拉斯的学生希帕索斯在公元前6世纪发现2的平方根是无理数。故事里还说,此发现引起了轩然大波,毕达哥拉斯及其追随者试图掩盖这一发现,甚至把希帕索斯扔进了地中海。他们相当肯定,无理数不存在。丢番图拒绝承认无理数是其问题的解,延续了无理数不合他口味的这一传统。

    在有了小数点(古希腊人没有)后,我们就能轻易创造一个数,它显然是一个无理数,只要写下一些无重复片段的无序数字就行了。这样一个小数,它的小数部分出奇地怪异,但显然不会重复:

    .0010110111011110111110111111…

    在小数点之后,有两个0和一个1,然后一个0和两个1,再后一个0和三个1,等等。这不是一个有理数!它不能表示成两个整数的比,因此它是无理数。

    2的平方根是方程:

    x2-2=0

    的解。这个等式和先前展示的一样,只是我们将2移到了等号的另一边。17的立方根(同样也是个无理数)是方程:

    x3-17=0

    的解。上面两个方程都叫做代数方程。下面是另一个代数方程:

    -12x5+27x4-2x2+8x-4=0

    代数方程有一个变元,通常表示为x。(代数方程和丢番图方程不同,丢番图方程可以有多个变元。)代数方程有相加为零的多个项,上述最后一个例子里有五项。每一项包含一个变元的幂,幂为整数或零。(因为任何数的零次方都是1,第五项可以表示为-4乘以x的零次方。)任何带幂的变元都乘以一个整数系数,在这个例子中,系数依次是-12、27、-2、8和-4。这些系数可以是零,就像这个例子里“丢失”的x的立方项。

    代数方程在现实问题中频繁出现,所以它们很受重视。代数方程的一般形式是:

    aNxN+aN-1xN-1+…+a2x2+a1x+a0=0

    其中,N是正整数,ai是整数。它可以更简明地写成:

    第2章无理数和超越数 - 图11

    在我们先前的例子:

    -12x5 + 27x4 - 2x2 + 8x - 4 = 0

    中,N(最高的指数,也叫多项式的次数)是5,a5是-12,a4是27,a3是0,等等。

    代数方程的解(也叫方程的根)称为代数数。一个N次多项式最多可以有N个不同的解。在第1章,代数方程

    x2 - 10x + 21 = 0

    有3和7两个解。

    2的平方根是代数方程:

    x2 - 2 = 0

    的一个解,2的负平方根是另一个解。

    代数数的范畴还包括所有整数和所有有理数。例如,整数5是代数方程:

    x - 5 = 0

    的解,而3/7是代数方程:

    7x - 3 = 0

    的解。有些代数方程的解只有负数的平方根:

    x2 + 5 = 0

    这个方程看起来是无解的,因为任何数乘以它本身都是正的量,加上5不可能得0。负数的平方根称作虚数。(为了方便,-1的平方根记作字母 i。)尽管名字如此,但虚数是一类非常有用的数,它在现实生活中有着广泛的应用。不过,图灵论文和本书并不涉及虚数。

    在18世纪的某个时间,数学家们开始使用实数这一名称,以便同虚数区分开。根据定义,实数包括了除负数平方根以外的一切数。

    实数也称为连续统,因为实数可以看成一条连续直线上全体点的集合:

    第2章无理数和超越数 - 图12

    这条线上标记了一些整数,但是单靠这些整数点显然无法形成一条连续的线。

    同样,有理数全体也不是连续的。显然,有理数在实数轴上看上去是非常稠密的。对于任意两个有理数,例如a和b,你都可以在它们之间插入另一个有理数,如a和b的平均数:

    第2章无理数和超越数 - 图13

    但是,在有理数之间仍存在无理数占据的间隙。例如,其中的一个间隙对应了2的平方根。

    现在,我们从两个角度对数进行分类。我们已经将代数方程的解定义为了一类,称作代数数,这一类包括整数、有理数和许多如平方根和立方根的无理数。我们还定义了一类数,称作实数,它是除负数平方根外的其他数。现在的问题是:

    所有的实数都是代数数吗?是否有些实数不是代数方程的解?

    1740年,莱昂哈德·欧拉(1707—1783,一位瑞士出生的孜孜不倦的数学家,其名字的谐音是“油壶”[1])猜想,非代数数确实存在,他称它们为超越数,因为它们超越了代数。证明超越数存在是艰难的,你如何证明一个特定的数不是一些极其冗长并且无比繁杂的代数方程的解?

    超越数的存在一直是一个未解决的问题,直到1844年,法国数学家约瑟夫·刘维尔(1809—1882)想出了一个容易研究的数,并且成功证明了它不是代数数。刘维尔所选数的小数点后30位是:

    .110001000000000000000001000000…

    但是这个片段并不能完全揭示它的完整形式,刘维尔利用阶乘构造了这个奇特的数。一个数的阶乘是小于等于这个数的所有正整数的乘积,用感叹符号来表示:

    1!=1

    2!=1x2=2

    3!=1x2x3=6

    4!=1x2x3x4=24

    5!=1x2x3x4x5=120

    等等。刘维尔数(通常这样称呼它)在小数点后第1,2,6,24,120,…位为1,其余位置为0。刘维尔设计了这样一个数,来证明它不是任何代数方程的解。越来越稀疏的非零数字是这个证明[2]的关键。

    1882年,德国数学家费迪南德·林德曼(1852—1939)证明了长久以来最著名的一个无理数也是超越数,这个数就是π,即圆的周长与直径的比:

    π=3.1415926535897932384626433832795…

    林德曼证明了π不是代数方程的解,这个事实为一个古老的难题提供了新的视角:在过去的两千多年来,数学家和非数学家都在尝试解决的“化圆为方”问题。这个问题可以简单叙述为:给出一个圆,用直尺和圆规构建一个与圆面积相等的正方形。(一个类似的难题称为“圆的矫正”,它需要构建一条与圆的周长相等的直线。)人们是如此疯狂地尝试解决这个问题,以至于古希腊语中都有了专门表示这一活动的词第2章无理数和超越数 - 图14,从字面上看,它的意思是“四角化”。[3]

    用直尺和圆规构建一个几何图形与求解某些特定形式的代数方程是等价的。因为π不是任何一个代数方程的解,所以你不能在一个几何构造中表示这个数。这就意味着,用直尺和圆规构建一个与圆面积相等的正方形是不可实现的。

    另一个著名的超越数用符号e表示(代表欧拉)。如果计算

    第2章无理数和超越数 - 图15

    那么在N趋于无穷大的情况下,结果会趋近e:

    e=2.7182818284590452353602874713527…

    你也可以用下面这个包含阶乘的无限数列计算e:

    第2章无理数和超越数 - 图16

    你可以计算它,但它不是任何一个代数方程的解。

    在过去的这个世纪中,许多数已经被证明是超越数了,但是仍然没有一种通用方法来证明一个数是不是超越数。例如,对于下面这个数仍然没有结论:

    π=π

    图灵论文(以及本书)将数限定在了实数(非虚数)。下面的图汇总了实数领域内几个最重要的类别。

    第2章无理数和超越数 - 图17

    这个图没有按比例来画。

    等等,这么说是什么意思?

    这些类别中的数都有无穷多个,不是吗?无穷多个整数,无穷多个有理数,无穷个无理数,不是吗?无穷是无穷的,不是吗?没有不同大小的无穷,不是吗?不存在一个无穷大于另一个无穷,不是吗?

    对吗?

    不论我们是从哲学、神学还是数学哪个方面谈及无穷,它永远都不是一个简单的话题。然而在数学中,无穷几乎不可回避,我们不得不鼓起所有勇气去研究无穷这个概念。

    自然数的无限增大似乎是无穷大这个概念的根源。无论我们数到哪个数,总能再多数一个。实数当然也是可以无限增大的,但那只是因为它们会跟着自然数一起增加。当我们一次又一次地细分连续统时,我们便开始思考实数的无穷小了。

    这两个无穷——无穷无尽的自然数和无穷稠密的连续统——在某些方面有相似之处吗?或者说它们完全不同?

    如果我们掌握了集合论的一些基本知识,接下来的讨论就会简单些了。集合是由一些称作集合元素的对象组成的。集合通常用大括号表示,例如,

    {1,2,3,4}

    是前四个自然数的集合。集合里的元素是唯一的,比如不允许出现两个4。集合里元素的排列顺序无关紧要,集合

    {4,1,3,2}

    与前一个集合是一样的。集合中元素的个数称作基数,也叫势。上面的有限集合的基数是4。具有相同基数的集合称作等势的集合。

    有些集合的势是有限的,有些集合的势是无限的。正整数集合:

    {1,2,3,…}

    的势显然是无限的。正偶数集合的势也是无限的:

    {2,4,6,…}

    这两个集合的势之间有什么关系呢?

    我们也许会脱口而出,第一个集合的元素个数是第二个集合的两倍,因为第二个集合少了所有的奇数。这当然只是片面的看法。如果这两个集合都是有限的,那么这种看法确定是对的。但是,这两个集合都是无限的,我们怎么能说一个集合是另一个集合的两倍呢?

    我们来数一下第二个集合的元素。什么叫做“数”?它的意思是将这些元素与我们数数时心中默念的自然数“1,2,3,…”一一对应起来。

    我们可以通过与自然数做一一对应,来数无限集合里的正偶数:

    第2章无理数和超越数 - 图18

    对于每一个正整数,都有一个偶数与之对应。对于任何一个偶数,都有一个正整数与之对应。这么一看,这两个集合现在似乎变得一样大了,也就是说它们是等势的。这是怎么回事?(事实上,无限集合的这种独有特征是伽利略在1683年[4]提出的,因此有时也称作伽利略悖论。)

    似乎没有人过多关注过这个悖论,直到格奥尔格· 康托尔(1845—1918)跟它较起劲来。康托尔,伟大的数学家,出生于圣彼得堡,以建立集合论而闻名。他的父亲是一名商人,在各方面引导儿子出类拔萃,他的母亲出身于博姆音乐世家。康托尔崭露了自己在艺术和音乐上的天赋,但是他在17岁时决定“献身于数学”。[5]他去了苏黎世理工学院和柏林大学。1869年,康托尔在哈雷大学获得了一份教学工作,并在那里度过了余生。

    在1873年寄给数学家理查德·戴德金(1831—1916)的一封信中,康托尔探索了类似自然数与偶数之间的对应,并且考虑是否可以在自然数和实数之间建立类似的对应。他怀疑这不可能,但是无法解释这是为什么。“我找不到我要寻找的答案,也许它很简单。”康托尔写道,[6]这是他著名的遗言。

    如果集合中的元素能与自然数一一对应,那么我们称这个集合为可数的。如果我们能将集合中的元素按照某种方式排序或列举出来,那么这个集合就是可数的,因为任何一个列表都是可以标号的,也就是将各项与自然数1,2,3,…一一配对。所有有限集合当然都是可数的。真正的难题来自于无限集合。

    例如考虑由全体整数构成的集合,其中包含正数、负数和零。这个集合是可数的吗?是的。因为我们可以从零开始列举所有这些整数:

    0

    1

    -1

    2

    -2

    3

    -3

    这不是列举整数的通常方法,但是它向我们展示了,单个列表能包含所有的整数。

    有趣的是,有理数也是可数的。我们从正有理数开始,而且不要担心数列里有一些重复的数:

    1/1

    1/2

    2/1

    1/3

    2/2

    3/1

    1/4

    2/3

    3/2

    4/1

    看出规律了吗?数列中第一项的分子分母之和是2,接下来两项的分子分母之和是3,之后三项的分子分母之和是4,以此类推。这个列表就包含了所有的正有理数。只需一正一负地交替列举,我们便能把负有理数也加进来。因此,有理数是可数的。

    在1874年发表的一篇论文“关于实代数数集合的性质”[7]中,康托尔指出甚至代数数都是可数的。正如我们知道的,代数数是代数方程的解,代数方程的一般式是

    aNxN+aN-1xN-1+…+a2x2+a1x+a0=0

    其中N是正整数,ai是整数。对于任何一个代数方程,将所有的系数(ai的值)和N相加,我们称所得的值为方程的高。对于某个特定的高(例如5),存在有限个数的方程,每个方程至多有N个解。所以,所有的代数数都可以根据它的高和解来排列。因此,代数数是可数的。

    那么超越数呢?超越数是否可以按照某种方式列成一张表?这看上去极不可能!我们甚至没有检测一个特定的数是否是超越数的一般步骤!

    那么包含了代数数和超越数的实数呢?实数可数吗?

    在1874年康托尔证明代数数可数的同一篇论文中,他也证明了实数是不可数的。

    康托尔首先假设实数是可数的。他假设存在一种枚举实数的方法,并且这些实数已经按照这种方式排列好了,我们用带下标的希腊字母ω来标记:

    ω1 ω2 ω3 ω4 ω5 ω6

    康托尔打算证明这个列表是不完整的——无论怎样构造这个列表,它都不可能包含所有的实数。

    随便选择一个数α和一个稍大的数β。你可以像这样在数轴上表示这两个数:

    第2章无理数和超越数 - 图19

    现在,从左至右依次查看那个列表里的数,找出两个大小在α和β之间的实数,这两个数均大于α并且小于β。我们称这两个数中小的那个为α',大一些的为:β'

    第2章无理数和超越数 - 图20

    从刚才停下来的地方开始,继续往下搜索列表,直到碰上两个新的大小介于α'和β'之间的数,称这两个数为第2章无理数和超越数 - 图21第2章无理数和超越数 - 图22

    第2章无理数和超越数 - 图23

    继续:

    第2章无理数和超越数 - 图24

    这个过程显然可以无限进行下去。你总能在刚才的两个数之间再找到两个新的数。

    你怎么知道的?很简单。假设你被卡在了这一步

    第2章无理数和超越数 - 图25

    上标(v)表明有v个小撇,也许是一亿亿亿个,但仍是个有限的数。现在,无论如何继续在枚举好的实数列表中搜索,都不能在α(v)和β(v)之间找到另一组数。很显然,你的实数列表是不全的。这个列表缺少了α(v)和β(v)之间的每一个数。例如,夹在α(v)和β(v)正中间的数是这两个数的平均数,也即:

    第2章无理数和超越数 - 图26

    这还只是个开始。你的数列漏掉了许多数。

    这就是你知道这个过程必定会无限进行下去的原因。所有的α会持续增大,而β会持续减小,但是最大的α不能大于最小的β。(当你在最后一组α和β之间找到两个新数的时候,那个小的数总是α,大的数总是β。)α和β都有一个界线(极限),康托尔用无穷符号作为上标来标记:第2章无理数和超越数 - 图27第2章无理数和超越数 - 图28

    第2章无理数和超越数 - 图29是否可能小于第2章无理数和超越数 - 图30?我们来看一下:

    第2章无理数和超越数 - 图31

    不,这不可能。如果α永远不会大于第2章无理数和超越数 - 图32并且β永远不会小于第2章无理数和超越数 - 图33,那么这个实数数列就会丢失每一个在第2章无理数和超越数 - 图34第2章无理数和超越数 - 图35之间的数,第一个能想到的就是:

    第2章无理数和超越数 - 图36

    第2章无理数和超越数 - 图37一定等于第2章无理数和超越数 - 图38。康托尔称这个极限为第2章无理数和超越数 - 图39(希腊字母beta):

    第2章无理数和超越数 - 图40

    因为这是一个永远持续的过程(我们已经说明了它不可能在某一点停下来),α永远无法达到第2章无理数和超越数 - 图41,β也如此。现在,你知道这是什么意思了,对吗?这意味着,第2章无理数和超越数 - 图42不在最初的那个实数列表里!

    如果第2章无理数和超越数 - 图43真的在这个实数数列里,那么它本该在某一次搜索下一个α和β的时候出现,但考虑数列中搜索到第2章无理数和超越数 - 图44之前的那一对α和β:

    第2章无理数和超越数 - 图45

    现在这个实数列表里漏掉了在α(v)与β(v)之间除了第2章无理数和超越数 - 图46以外的每一个数。

    我们考虑完了所有情形。没有一个成立,没有一个符合逻辑,这都怪我们最原始假设是错的——我们假设了实数是可枚举的,这一切一定都是因为我们根本做不到这一点。

    整数是可数的,有理数是可数的,甚至代数数都是可数的。然而,实数都是不可数的。

    康托尔考虑将实数不可数的性质作为超越数存在的新证据。(如果超越数不存在,那么实数就等同于代数数,从而可数。)康托尔最终意识到至少有两种无穷:可数的无穷和不可数的无穷,即自然数的无穷和连续统的无穷。自然数、有理数,甚至代数数的无限集合都是可数的。当我们将超越数放进来的时候,我们突然间就置身在一个完全不同的世界中了。我们眼前有两种不同的无穷的势:一种势适用于自然数、有理数与代数数;另一种势适用于实数和连续统。

    康托尔的成果在当时饱受争议,他自己也一直没能摆脱这种争议。自康托尔后,没有哪个数学家再像他那样思考无穷了。可数的无穷和不可数的无穷之间的区别已被证明是极其有用的,即使想象一种简单的无穷就足以震撼人心。

    有一种流行的说法是,对无穷的冥思苦想让康托尔本人最后疯掉了。康托尔确实在他生命的最后20年中经常出入精神病院,但这也许是一种跟职业无关的躁郁症。[8]然而,最糟糕的是,疲劳和压力经常使他的精神疾病发作,而且这种压力与其非传统的数学理论是否被接受息息相关。在休养期间,他的兴趣已不在数学上了。他研究过哲学、神学、形而上学,以及“培根是莎士比亚戏剧的真正作者”这一假说。

    有限集合与无限集合有很多不同,其中一个很大的不同就是真子集,也就是那些与集合自身不相同的子集。有限集合的真子集总是有较小的基数,这一点显而易见。无限集合的真子集也可以有较小的基数。(例如,自然数集就是实数集的真子集,它们的基数是不同的。)然而在有些情况下,有些集合的真子集有着与集合本身一样的基数。这只对无限集合成立。自然数集是整数集的真子集,整数集是有理数的真子集,有理数又是代数数集的真子集。所有这些无限集合都有相同的基数,它们是等势的。

    实数的各种真子集也有可能是相互等势的。想想1与0之间的实数。这些数可以与大于1的实数一一对应,只要把每个数都用1除一下就好了。例如,0.5对应2,0.25对应4,0.1对应10,0.0001对应10000。这一事实非常有用,意味着我们可以考察0和1之间的实数的某些性质,其结论将适用于所有的实数。(图灵在他的论文中运用到了这一概念,康托尔也用到了它。)

    康托尔在探索无限集合时还有其他惊人发现。他发现我们可以在连续统(直线上的实数)和平面上的点,乃至N维空间中的点之间建立一一对应关系。

    下面我们只看x和y坐标都在0和1之间的那部分平面区域。平面上的任何一点都可以表示为数字对(x,y),并且这两个数中的任何一个数小数点后都有无穷位。在下面的表示中,x的小数点后每一位都用带有下标的a来表示:

    x=.a1a2a3a4

    y同样如此:

    y=.b1b2b3b4

    现在,把这些数插在一起,形成一个新的数:

    .a1b1a2ba2a3b3a4b4

    这是由两个实数压在一起形成的一个实数。每一个二维的点都对应着连续统上的一个实数。因此,平面上的所有点和直线上的实数有着一样的基数。康托尔被这个发现震撼得说不出话来。他在给戴德金[9]的信中写道:“Je le vois, mais je ne le crois pas.”(我了解它,但我不相信它。)

    1891年,康托尔发表了另一个实数不可数的证明,[10]从那以后,这个证明至今令人拍案叫绝。康托尔的证明涉及了集合而非数字,并且比我即将展示的例子更具一般性,二者思路是一样的。这种思路被称作对角线证明法(diagonal proof)、对角线过程(diagonal process)、对角线论证(diagonal argument)或者对角化(diagonalization),原因大家马上就知道了。无论怎么称呼它,总少不了对角线一词。

    来看0和1之间的实数。假设我们设计了一种列出所有实数的方法。(正如你所料,这是另一个反证法。)假设这个排列像下面这样:

    .1234567890…

    .2500000000…

    .3333333333…

    .3141592653…

    .0101101110…

    .4857290283…

    .0000000000…

    .9999999999…

    .7788778812…

    .2718281828…

    我们似乎有了一个良好的开端。这个数列包括0、1/4、1/3、π/10、e/10,还有之前那个连续数字“1”越来越多的无理数,以及一些不大能辨认出来的数。每个数都有无限的十进制小数位(即使它们都是0),并且这个列表有无限多个数。

    即便这个列表是无限的,我们仍然可以说服自己这里面漏掉了一些东西。我们从左上角到右下角看这个列表中的数字,这些数字用粗体显示:

    .1234567890…

    .2500000000…

    .3333333333…

    .3141592653…

    .0101101110…

    .4857290283…

    .0000000000…

    .9999999999…

    .7788778812…

    .2718281828…

    现在用这些粗体数字构建一个数:

    .1531190918…

    因为实数列表是无限的,每个数的位数也是无限的,所以上面这个数有无限位。现在将这个数的每一位都增加1。如果这一位是9,就把它变成0:

    .2642201029…

    这个新数是否在原来的列表里?让我们一步一步来看:这个新数是否是列表中的第一个数?不是,因为列表里第一个数的第一个位是1,而这个新数的第一位是2。

    这个数是列表中的第二个数吗?也不是,因为数列中第二个数的第二位是5,而新数的第二位是6。

    这个数是数列中的第三个数吗?不是,因为数列中第三个数的第三位是3,而新数的第三位是4。

    等等等等。这个新数不是列表里的第N个数,因为第N个数的第N位与这个新数的第N位不相等。

    因此,这个列表是不全的,我们先前的假设有问题。枚举0和1之间的所有实数是不可能的,我们再次看到实数是不可数的。

    当我们对代数数进行同样的操作会发生什么?我们已经知道如何枚举代数数,这不是问题。当构建一条对角线并且改变所有位上的数字时,所生成的数并不在这个列表中。这就意味着生成的数不是代数数,而是超越数。

    你可以将代数数按照多种不同的方式排列,你可以制定不同的规则让对角线和原数列中的每一个数都不同。每次这么做,你都将得到一个新的超越数。

    1895年,康托尔选择用希伯来文字母表中的第一个字母加上下标0(第2章无理数和超越数 - 图470,读作“阿列夫零”)来表示可数的自然数集合(因此也是任何可数的无限集合)的基数。康托尔称这是第一超限数。他将它与其他超限数(第2章无理数和超越数 - 图481第2章无理数和超越数 - 图492第2章无理数和超越数 - 图503等)结合起来建立了超限数的整个数学体系。

    如果可数集合的基数是第2章无理数和超越数 - 图510,那么实数的不可数集合的基数是什么?我们能否表示这个基数?

    也许吧。我们先来看一个有限的集合,它仅有3个元素:

    {a, b, c}

    这个集合有很多子集,你能构造出多少个来?(一个集合的所有子集的集合叫做幂集。)你可以动手尝试一下,但是不要忘了空集和包含所有3个元素的集合:

    第2章无理数和超越数 - 图52

    含3个元素的集合共有8个子集,而且这并非巧合:

    23=8

    其中指数是原集合元素的个数,结果是子集的个数。一个含4个元素的集合有16(2的4次方)个子集,含5个元素的集合有32个子集。

    为了更好地揭示这种联系,我们还有一个更具条理的方法来枚举这些子集。画一个表格原集合中的每个元素各占一列,用0和1来表示这些元素是否在各个子集中:

    第2章无理数和超越数 - 图53

    这些三位的0和1组合依次与二进制数的0到7相对应。3位得到8个二进制数。一般的规则是:

    幂集的势 = 2原集合的势

    一个含10个元素的集合,其幂集含有1024个元素,一个含100个元素的集合,其幂集含有1267650600228229401496703205376个元素。

    再来关注自然数(因为需要,把0也算进来了):

    {0, 1, 2, 3, 4, 5, …}

    这个集合的基数是第2章无理数和超越数 - 图540。它有多少个子集呢?或者说,它的幂集的基数是多少?它的基数是:

    第2章无理数和超越数 - 图55

    我们有必要进行进一步的确认。我们来构建一个与类似有限集合的表格(显然设法画全)。各列的第一行依次是自然数集合里的所有元素。每一列的0和1表示该元素在哪些子集中,所得的子集写在每行最右边:

    0 1 2 3 4 5 子集
    0 0 0 0 0 0 { }
    1 0 0 0 0 0 {0}
    0 1 0 0 0 0 {1}
    1 1 0 0 0 0 {0,1}
    0 0 1 0 0 0 {2}
    1 0 1 0 0 0 {0, 2}
    0 1 1 0 0 0 {1, 2}
    1 1 1 0 0 0 {0, 1, 2}

    在这里,我们其实是在尝试枚举所有无限多种可能的0和1的组合。我们在该列表的每串数字前加一个小数点:

    .000000…

    .100000…

    .010000…

    .110000…

    .001000…

    .101000…

    .011000…

    .111000…

    它们都是0和1之间的二进制数,并且也是0和1之间的所有二进制数,因此也就是0和1之间所有的实数。[11]我在之前展示了如何将0和1之间的实数与整个实数一一对应,这就是说实数可以与自然数的幂集中的成员建立一一对应关系。这个幂集因此有和连续统一样的基数。

    因此,连续统的基数是:

    第2章无理数和超越数 - 图56

    其中第2章无理数和超越数 - 图570是自然数的基数。

    康托尔证明了将任何一个非空集合的元素与其幂集的元素一一对应是不可能的,这个事实对于有限集合很明显,但对于无限集合就不明显了。这个结论现在称为康托尔定理,它也是1891年那篇介绍对角化技巧的论文的主要成果。正如一个集合有幂集一样,一个幂集同样可以有自己的幂集,等等。所有这些集合都有不同的基数。

    康托尔推测,连续统的基数是第2章无理数和超越数 - 图580之后的下一个超限数,他称这个基数是第2章无理数和超越数 - 图591。这个推测称为康托尔的连续统假设,用数学语言表示为:

    第2章无理数和超越数 - 图60

    康托尔不懈地证明他的假设,但是始终没有成功。问题在于,在第2章无理数和超越数 - 图610和连续统的基数之间可能存在一些超限数。

    尽管如此,这一切的深刻涵义在于可数集合的基数不仅仅是比连续统的基数小,

    第2章无理数和超越数 - 图62

    而且是非常,非常,非常,非常,非常小:

    第2章无理数和超越数 - 图63

    事实上,连续统与可数集的唯一区别在于,是否包含超越数。我们不得不承认,超越数,那些1844年之前甚至还不能证明其存在性的数,其实占了实数的绝大部分。事实上,它们几乎占满了所有的实数。

    千百年来,我们对于数的概念完全是偏颇和扭曲的。我们总是重视整洁、秩序、模式,然而我们又生活在一个折中与近似的世界中。我们只关注那些对我们有意义的数字。为了数农场里的动物,我们发明了自然数;为了测量,我们发明了有理数;而在高等数学中,我们又发明了代数数。我们从连续统中挖出了所有这些数,却完全无视了实数海洋中其他有如微生物一般繁多的数。我们活在一种很安逸的幻觉中:有理数比无理数多得多,代数数比超越数多得多,当然这仅仅是我们的一厢情愿。然而事实上,在连续统的世界中几乎每一个数都是超越数。

    这些超越数到底是什么?它们中的大多数仅仅就是随机的数字序列,完全没有模式、规则和意义可言。实际上,任何一个随机的数字序列几乎都是超越数。

    我们向标靶投掷一个飞镖,然后使用一个带渐进高倍镜的无比精确的尺子测量飞镖和靶心的距离。我们首先量出整的英寸数,然后量十分之一英寸,再后是百分之一英寸,如此可以一直量下去,永无止息。所得结果是有理数(比如正好1.437英寸)的概率基本可以忽略不计。

    当然,真正测量飞镖的时候我们不得不面对真实世界的情况。飞镖总不可能正好把一个原子劈开吧!显然,飞镖会插进标靶软木离散的分子之间,而且当我们真的放大到了分子世界时,会发现分子震荡得太快难以精确测量,而且光的波长有限会引起失真,海森堡不确定性原理又会在某个时候横插一脚,所以我们什么都不能真正确定下来。

    在这样的微观世界中,连续统的概念是如此地离奇而让人绝望。而当我们把目光从分子转移到宏观宇宙中,同样也会产生疑问,无穷在现实世界中到底存在不存在。尤其是考虑到,宇宙大爆炸很可能发生在有限的时间以前,只释放了有限的物质和能量,因而宇宙似乎应该由离散而并非连续的结构来刻画。

    我们还想知道:康托尔对于可数集合和不可数集合的探索仅仅是高度抽象(甚至还值得怀疑)的理论数学呢?还是可以在现实生活中有其用武之地呢?

    尽管在现实世界中很难找到无限的事物,但是无限的概念在数学上还是有用的。后来发现,某些有现实意义的数学证明,包括图灵论文里的证明,核心问题就在于可数集合与不可数集合的区别上,如下图所示。

    第2章无理数和超越数 - 图64

    看到问题所在了吗?