另一方面,康托尔集的任何数a也并不会感到太孤独,因为当a观察数轴上任何包含它自己的区间J,不论多么小,a总能在身边的邻居中找到同在C里的元素(也有不在C中的数)。我们可以让给定区间J里的一个数b同时属于C,只需规定b的三进制展开式拥有与a足够多相同的位数,但又不包含1。实际上,J包含有不可数个C的成员。
总结一下,康托尔三分点集C拥有可能有的最大数量的元素,当C的成员左右看去的时候,它们的兄弟姐妹在周围到处可见。然而,对于不属于C的数,C就像不存在一样。在它们的邻域内,看不到一个C中元素的身影,而集合C本身的测度也为0。对它们来说,C几乎什么也不是。
丢番图方程
不过,当我们往反方向走时,产生了一条富有趣味的研究路线。我们要求不仅方程的系数是整数,并且解也得是整数。这里举一个经典的例子。
一个装着蜘蛛和甲虫的盒子里有46条腿,问两种生物各有多少只?这个小小的谜题可以用试错法轻松解决,但是仔细观察下面两点,我们可以学到些东西。第一,它可以被一个方程来表示6b+8s=46。第二,我们只对这个方程的某些种类的解感兴趣,即甲虫(b)和蜘蛛(s)的数量都是整数的解。一般来说,当我们只限定于搜寻特殊类型的解时,相应的方程组就被称作丢番图方程(Diophaion)。通常情况下我们要找的是整数或是有理数解。
要求解本例中这样的线性丢番图方程,有一个简单的方法。首先,将方程除以系数的最大公因数。在这个例子中,系数是6和8,因此它们的最大公因数是2。消去这个公因数2之后,我们得到一个等价的方程——也就是说一个有同样解的方程:3b+4s=23。如果做完这次除法之后,右侧不再是整数,那就表明该方程没有整数解,我们可以就此罢手。下一步骤是取系数当中的一个(通常用最小的那个,因为这样最简单),并将方程用它的倍数来表达。这里最小的系数是3,我们的方程可以写成3b+3s+s=(3×7)+2。整理后我们得到s=(3×7)-3b-3s+2。这样做的目的在于揭示出s有3t+2这样的形式,这里t是某个整数。将s=3t+2代入我们的方程,整理出b的表达式。我们得到
3b+4(3t+2)=23→3b=15-12t→b=5-4t。
现在,我们有了丢番图方程完备的整数解:b=5-4t,s=3t+2。t选择任意一个整数值都给出一组解,而所有整数解都具有这样的形式。
当然,我们的原始问题还有附加的限制条件,即b和s两者都大于等于0,因为不存在负数个蜘蛛或者甲虫。因此,只有两种可行的t值,t=0或t=1。这给了我们两组可能的解,5只甲虫和2只蜘蛛,或者1只甲虫和5只蜘蛛。假如我们对原题咬文嚼字,认为两种生物都必须有不止一只[6],那么我们便得到传统的答案:5只甲虫和2只蜘蛛。
这种类型的问题称作线性的(linear),因为它所涉及方程的图像由排成一条直线的无穷多个点组成。丢番图问题则是要找到这条直线上的栅格点(lattits),也就是那些两个坐标值都是整数的点。或者,如果我们只允许正数解,则只能是在第一象限里面的栅格点。
然而,一旦我们允许方程中出现平方和更高次方,对应的问题的性质会变得更加多样化和有趣。在这种类型中的一个经典问题上我们已经获得了完整的解,那就是找出所有的勾股数[7](Pythagoreantriple):满足a2+b2=c2的正整数a,b,c。当然,得名勾股数是因为你可以用这三个正数作为边长画出一个直角三角形。典型的例子是(3,4,5)三角形。给定任意勾股数,我们只需要将它们乘上任一正整数,就能得到更多的勾股数,因为勾股方程依然成立。例如,我们可以将刚才的例子翻倍,得到(6,8,10)这组数。不过,这给出的是一个相似三角形,它和原来那个有一模一样的比例关系,因为改变的只是整体尺寸而不是形状。给定第一个三角形,我们只需用原来单位的一半来测量边长,就可以使三角形的尺寸数值变为之前的两倍,也就得到了第二组勾股数。但是,也有本质上不一样的勾股数,比如(5,12,13)和(65,72,97)。
所以,要描述所有的勾股数,只需要描述最大公因数为1的所有三元素组(a,b,c)就行了,因为一切其他的勾股数都仅仅是这些的放大版。方案如下。取任意一对互质的正整数m和n,其中一个为偶数。假设m表示两者中大的那个数。构造三元数a=2mn,b=m2-n2及2。那么这三个数a,b,c就给出一组勾股数(这里用代数可以轻松验证),并且这三个数没有公因数(也不难检验)。上面的三个例子就可以这样得到。在第一个例子里取m=2和n=1,第二个里取m=3和n=2,而最后一种情况我们有m=9,n=4。要检验反过来的命题需要更多努力:任何勾股数都可以用这种方法来生成,只需取合适的m和n的值;另外,这样的表示法还是唯一的,于是两对不同的(m,n)不可能产生同样的勾股数(a,b,c)。
相应的立方和更高次的方程却没有解:对于任何指数n≥3,没有正整数组x,y和z满足xn+yn=zn。这就是著名的费马大定理(Fermat’sLastTheorem)。未来它可能被称作怀尔斯定理,因为它是由安德鲁·怀尔斯爵士[8](SirAndrewWiles)在20世纪90年代最终证明的。甚至是在立方的情况下,这也是一个非常困难的问题,这是由欧拉首先解决的。不过,可以相对简单地证明两个四次方数之和不可能是一个平方数(因此当然不可能是一个四次方)。并且这就足以将原来的问题简化为指数n是一个素数p的情况(意思是如果我们对所有素指数的情况解决了这个问题,便可以立即得到一般的结论)。确实,在19世纪的时候,指数n为所谓的正则素数(regularprime)的情形得到了证明。然而,要实现问题的完全解决,还得等到怀尔斯解答了一个叫作谷山-志村猜想[9](Shimura-Taniyamajecture)的深刻问题之后。
斐波那契和连分数
回忆一下斐波那契发现的数列,1,1,2,3,5,8,13,21,…,我们在第5章中进行了介绍。从这个数列中取一对相邻的数,将它们的比写成1加上一个分数。现在,如果我们“埃及化”这个分数,也就是反复地让分数部分的分子分母同除以分子,就会出现一个引人注目的规律。比方说
我们得到了一个仅含有1的多层分数,并且随着计算持续进行,选出的这对相邻数之前的每对斐波那契数的比值会依次出现。这样的现象每次都会发生:正是由于这些数的定义,每个斐波那契数都比下一个的两倍要小,因而相除之后会得到商1,余数则是前一个斐波那契数。你也许想起来,相邻斐波那契数的比值趋近于黄金分割比——τ,这说明τ是仅由1构成的连分数的极限值。
从这个过程中产生的连分数本身就有重要意义。当用有理数来近似任意一个无理数y的时候,我们会自然地使用y的小数表示。这非常适用于一般的计算,但是在数学上,依附于一个特定的底数却不太自然。本质问题在于,我们能多好地用分母相对较小的分数来逼近y。有没有一种办法,能找到一系列的分数,既能高精度逼近y同时又保持较小的分母,在这两个矛盾的要求中取得最佳平衡?答案就在于一个数的连分数表达形式,并通过越来越多层的截断实现这一目的。
黄金分割比所提供的这个特殊例子打开了一条新的思路,即我们也许能表示其他的无理数,当然不是用有限的连分数(它们自己显然是有理数),而是用无穷连分数。但是,怎样才能产生一个数a的连分数呢?为了看清这个过程,读者朋友可能需要容许我玩一个小小的代数上的把戏,下面就是做法。
接下来我们得到
在用有理数对无理数的逼近中,连分数的重要性在于所谓的收敛子[12](t),即原始数的有理数近似,它们是通过截取某一层以前的连分数表达式,再求出相应的有理数来得到的。它们代表了对原始数的最优近似,也就是说任何更好的近似的分母都将比收敛子的分母大。黄金分割比的收敛子是斐波那契比值。由于τ的连分数表达式中每一项都是1,这些比值收敛的速度被尽可能地延缓了。出于这个原因,没有比τ更难用有理数逼近的数了,而斐波那契比值是你能取得的最佳结果。
[1] 通常称实数集(直线上点的集合)为连续统。
[2] 有时也称基数。
[3] 恩斯特·策梅罗(ErnstFriedriandZermelo),德国数学家。亚伯拉罕·弗兰克尔(AbrahamFraenkel),以色列数学家。
[5] 在三进制中,0。1可用0。0222…表示。
[6] 在英文原题中,“蜘蛛”和“甲虫”都使用了复数形式的名词,即它们各自不止一只。
[7] 勾股数或称商高数或毕氏数。
[8] 安德鲁·怀尔斯爵士(SirAndrewWiles),英国数学家,居于美国。
[9] 谷山丰和志村五郎,均为日本数学家。
[10] 又称最简分数。
[11] 该符号表示向下取整。
[12] 又称渐进分数。