01如何不去考虑数HowNottoThinkAboutNumbers
我们已经习惯看见写下来的数,也习惯于从中提取出某种意义。然而,一个数字(比如6)同它所代表的那个数并不是同一个东西。就像在罗马数字中,我们会把六[1]这个数写作VI,但是我们意识到这与用现代记号写下的6代表了同一个数,都代表对应6根算筹(IIIIII)的那一类集合。让我们先花一点点时间考虑一下表示和思考数的不同方法吧。
有时候,我们会在无意识的情况下解决一些关于数的问题。例如,假设你正要组织一次会议,想要保证每个人都拿到一份议程。你可以将每份议程逐个标上与会者的名字首字母。只要完成这一工作之前议程一直没用完,你就知道份数是足够的。这样你就解决了问题,而没有用到算术或者直接数数。这里数依然在发挥作用,它们使我们得以将一个集合同另一个集合进行精确比较,即便这两个集合的组成元素有着截然不同的性质。就像上述例子里,一个集合包含了人,而另一个集合则由纸张组成。数让我们可以比较两个集合的大小。
在上例中,你不需要费神去数有多少人将要出席,因为没有必要知道——你的问题是判断议程的份数是否不少于出席人数,而具体的数目无关紧要。但如果你是要为15个人买午饭,你就需要真正数一数人数了。当然,要计算这顿饭总共的开销时,就一定得有人使用算术,哪怕是用计算器求和来得出精确的数值。
现代数字系统让我们能以一种有效且统一的方式来表示数,这方便我们将一个数和其他数做比较,以及在计数问题中进行所需要的算术操作。日常生活中,我们在所有的算术中使用十进制,换句话说,我们十个十个地数数。这么做的原因是偶然的:我们恰好有十根手指。需要明确的是,让数的系统如此有效的原因并非我们对底数(base)的选择,而是我们在数的表示中使用了位值进位法(positionalvalue),即一个数字的值取决于它在数字串中出现的位置。比如,1984是4份1加上8份10,再加上9份100,再加上1份1000的缩写。
当我们把数写成特定形式的时候,我们想表达什么?理解这一点很重要。在这一章,我们将要考虑数代表了什么,发现不同的计数方法,认识一类非常重要的数(素数),并且介绍一些找到它们的简单技巧。
人们是如何学会数数的
这里值得我们花上片刻来弄明白构造一个计数系统所需的两个重要阶段。让我们以十进制为例:我们会给孩子们规定两项基本任务,背诵字母表和学习数数。这两个过程表面上看是相似的,却有着本质的不同。英语基于26个字母,简而言之,每个字母对应一个发音,供我们念单词用。总的来说,英语发展的结果是这门语言可以用26个符号来书写。如果不给字母表一个顺序,我们就没法编纂字典。然而,字母表并没有天生的排序。我们所采用并且都曾在学校吟诵过的a,b,c,d…看起来实在很随意。诚然,更常用的字母一般出现在字母表的前半部分,但这也只是粗略的准则,而非铁律。比如,常用字母s和t就很晚才被点名。相比之下,用以计数的数(umber),或者叫自然数[2](naturalnumber):1,2,3…一旦出现便已经排好了序。例如,符号3用来表示跟在符号2后面的那个数,因此必须列在2的下一位。在一定程度上,我们可以给每个数赋予一个新的符号。但为了处理永无止境的数,我们迟早得放弃不断引入新名字,而只能开始把它们按批次分组。按十个来分组代表了发展出一个坚实的数字系统的第一阶段,这个方法在古今中外几乎都是一样的。
但是各个文明在细节上却有很多不同。罗马系统除了按十分组外,同样也喜爱用五分组。他们使用特殊符号V和L,来分别代表五和五十。古希腊系统则直接使用了十进制。他们用某些字母来代表数,有时候加上上划线来告诉读者这个符号应被解读为一个数,而不是平常的词语中的一个字母。比如,π代表80,而γ代表3,于是他们可以写下πγ来代表83。与我们的现代数学符号相比,它看起来好像同样高效,也确实跟我们的相差不多,但它们是不一样的。希腊人仍然没能运用进位系统,因为他们每个符号的值都是固定不变的。具体说来,γπ还是只能表示同样的数——3+80。而如果我们将83里面数字的顺序颠倒,会得到一个不同的数——38。
在印度-阿拉伯系统(Hindu-Arabicsystem)中数的第二个阶段得以实现。其主要思想是让一个符号的值依赖于它在字符串中出现的位置。这使我们可以只使用一套固定的符号来表示任何数。我们最终选择了由0,1,2,…,9这十个数字组成的数字系统,这套常用的数字系统被称为十进制(baseten)。当然,我们完全可以用一个更大或者更小的基本符号集来建立我们的数字系统。我们甚至可以使用两个数字去建立数字系统,比如0和1。这被称为二进制(binarysystem),在电脑运算中经常被用到。需要明确的是,具有革命性的不是对底数的选择,而是这样一种思想:使用位置来传达额外的信息,从而确定数的值。
例如,当我们写下一个数,比如1905,每个数字的值取决于其在数字串中的位置。这里有5份1,9份100(即10×10),以及1份1000(即10×10×10)。符号零被用作一个占位符,这很重要。在1905这个例子中,十位并没有贡献,但我们不能忽略它而只写作195,因为那代表了一个完全不同的数。事实上,每个数字串都代表了一个不同的数,正因为如此,海量的数才可能用很短的字符串表示出来。比如,用不超过10位的字符串便可以给地球上每个人分配一个独特的号码,这样,这个巨大集合中的每一个体都有了个人代号。
不同的古代社会在书写数时使用了不同的底数,但这远不能弥补一个事实,即几乎所有文明都缺少一套真正的进位制系统,更谈不上使用零来作为占位符。在古代世界的所有民族中,巴比伦文明的数字系统是最为接近位值进位法的系统,考虑到他们的古老程度,这实在让人赞叹。然而,他们没有彻底拥抱那个不那么自然的数——零。比如,我们用零来区分830和83,而古巴比伦人刻意回避了在数字串末尾使用这样一个表示空的符号。
意识到零确实是数,这需要跨越一个概念上的障碍。零确实并非一个正数,但它依然是一个数,如果不将它以一种完全自洽的方式吸纳进来,我们的数字系统就是残缺不全的。约公元6世纪,印度迈出了这关键的最后一步。现代的数字系统被称为印度-阿拉伯系统,正因为它是从印度经由阿拉伯传到了欧洲。
有或没有小数的生活
为一个数字系统选底数有点像为一张地图选比例尺,这并非基于对象内在的性质,而是类似于赋予它一个坐标系,作为控制用的工具。我们对底数的选择本质上是任意的,面对自然数集1,2,3,4,…的时候,排他性地使用底数十让我们戴上了有色眼镜。只有掀起这层面纱,我们才能面对面地看清数到底是什么。当我们说起一个数,例如四十九,所有人的脑海中都浮现出两个字符4和9。某种程度上,这对我们谈论的那个数来说不太公平,因为我们毫不犹豫地将49转换成了(4×10)+9。我们也可以同样轻松地用另一种方式来诠释这个数:49=(4×12)+1。实际上,在十二进制中,四十九正是被写作41,这里数字4代表4份十二。当然,49这个数最显著的特征是它是7×7的积。这一特点在七进制中十分明显,此时四十九这个数会被表示为100,这里的1代表一份7×7。
我们一样有权利为我们的数字系统选择另一个底数,例如12。玛雅人使用了12,而巴比伦人用了60。某种程度上,60是一个计数基底的好选择,因为60有很多因数,它是可以被1到6之间所有数整除的最小的数。不过,选择一个60这样相对大的数作为底数也有缺点,就是需要引入60个不同的符号来表示从零到五十九的所有数。
如果一个数是另一个数的整数倍,则称第二个数是第一个的因数[4](factor)。比如,6是42=6×7的一个因数;但8不是28的一个因数,这是因为28含有三个8还余4。数字系统的底数拥有众多因数会是一个很方便的性质。这就是为什么相对于我们的数字系统来说,底数选择十二也许比十更好,因为12的因数是1,2,3,4,6和12,而10只能被1,2,5和10整除。
数字系统的有效性,加上我们对它高度熟悉,给了我们一种虚假的信心,同时也带来了一定的局限。我们会更愿意使用单个的数,而非一个算术表达式。例如,大多数人情愿谈论5969,而不是47×127,即使这两种表示方式代表了同一个东西。仅在“求出最终答案”5969之后,我们才觉得我们“有”了这个数,从而可以正视它。然而,这里面却包含着一丝虚妄的成分,因为我们只是将这个数写成了多个十的几次幂的和。若是将这个数分解为一系列因数的乘积,从这个等价形式中,我们反而可以更好地推断它一般意义上的构造和其他的性质。确切地说,5969这个标准形式能让我们将它和其他以同样方法表示的数直接比较大小,但并不能展现出这个数的全部特性。分解为因数的形式可能有用得多。在第4章中,你会发现其中的一个原因,即一个数的十进制表示可能掩盖了关键的因数。
古人比我们多拥有的一项优势是,他们并未被十进制的思路所束缚。谈到数的规律时,他们会自然地想到一个数可能拥有或缺乏某些特殊的几何性质。比如,10和15这样的数是三角的(triangular)。这可以通过图像展现在我们面前,正如十瓶制保龄球中排成三角形的球瓶,以及斯诺克台球中15个红球摆成的三角。但如果只用十进制展示这些数,这样的画面就不会出现在我们眼前。我们要放下十进制的思维定势,告诉自己可以从很多不同角度来思考数,才能重新获得古代人天然就拥有的自由。
这样,把我们自己解放出来之后,我们可能会选择重点关注一个数的因数分解(factorization)——把数写成一些更小的数的积。因数分解揭示了一个数内部构造的相关信息。通常,我们仅将数看作科学和商业的仆人,如果能把这个习惯暂时丢在一边,花一点点时间专门研究数本身,而不与任何其他事物做关联,我们就能发现很多原来隐藏着的信息。单个数的性质可能会在自然界中以有序的模式展现出来,这比单纯的三角形或方形来得更微妙,比如,向日葵螺旋形的头状花序代表的斐波那契数。我们将在第5章中介绍这种类型的数。
素数数列概览
数的荣耀中有一项是如此显而易见,以至于很容易被忽视——它们每一个都是独一无二的。每个数有自己的结构——如果你喜欢的话,可以称之为个性。单个数的个性非常重要,这是因为当一个特定的数出现时,它的特征会反映在它所描述的集合的结构中。当我们执行加法和乘法这些基本的数的运算时,数之间的关系也会显现出来。显然,任何比1大的自然数都可以表示成更小的数的和。但是,当我们开始将数相乘,我们很快注意到有些数从来都不会在我们得到的乘积里出现。这些数就是素数[5](primenumber)。它们代表了乘法的构成要素。
一个素数是一个像7,23或103这样的数。它有且仅有两个因数——1和它本身。我们并不把1看作一个素数,因为它只有1个因数。那么第一个素数便是2,这也是仅有的偶素数,接下来的3个素数3,5和7都是奇数。大于1而又不是素数的数称为合数(posite),因为它们由一些更小的数复合而成。数4=2×2=2[6]是第一个合数;9是第一个奇合数,9=32也是一个平方数(square);6=2×3是我们第一个真正意义上复合的数,因为它由两个不同的大于1的因数复合而成。而8=23是第一个立方数(cube),立方数是指等于某个数的3次幂的数2。
紧接着个位数的是我们选择的底数10=2×5,它本身就是特殊的,而且还是三角的,因为10=1+2+3+4(回想一下十瓶制保龄球)。接下来我们有一对孪生素数(twinprimes)11和13,它们是由12隔开的两个相邻的奇数,且同为素数。考虑到数值的大小,12显得有很多因数。的确,12是第一个所谓的盈数[7](abundantnumber),因为它的真因数(properfactors)——严格小于它自身的因数——之和超过了这个数本身:1+2+3+4+6=16。数14=2×7可能看起来并没有什么特别的,但这实在是一条悖论,作为第一个不特别的数本身就是一件特别的事。到了15=3×5,我们又遇到了一个三角数,并且它是第一个等于两个真因数之积的奇数。数16=24不仅是一个平方数,还是第一个四次幂数(在1以后),这使得它十分特别。17和19是另一对孪生素数。对于18和20,以及更多数的独有性质,我就留给读者朋友自己去观察了。对每一个数,你都可以说它是特别的。
回到素数,它们中的前20个是:
2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71。
显然,在数列的开始部分,素数是十分常见的,因为小的数没有多大可能会有因数分解。在这之后,素数越来越稀少。比如,只有一组连续3个奇素数:3,5,7。这三者的组合是独一无二的,因为每3个奇数就会出现1个3的倍数,所以这种情况再也不会发生。此外,素数出现频率减少的过程是十分松散的,还惊人地不规律。比如,30~40之间只有两个素数,即31和37,但刚过100就会有两个“相继的”孪生素数对,即101,103和107,109。