地球上的沙粒和宇宙中的星星哪个多?在远离人造光的晴朗夜晚,单凭肉眼你至少可以看到一两千颗星星;如果当晚没有月亮而你的视力又特别好的话,你可以看到将近四千颗。一把沙子里的沙粒要比这多得多(见图1-1)。太空之广袤,令人望而生畏。强大望远镜的观测表明,太空包含大量星系,每个星系都拥有数十亿颗星星;我们星球上的沙漠、海滩和海床里都含有大量沙粒,同样令人眼花缭乱。那么,在这场数字游戏中,沙粒和星星谁会胜出呢?
图1-1 利比亚境内撒哈拉沙漠中的沙丘
美国夏威夷大学的研究人员在2003年的一项研究中估算出,地球上沙粒的数量为750亿亿,或者说75后面跟着17个0。至于整个可观测宇宙中的星星,他们得出的数字为700万亿亿,相当于一颗沙粒对应约一万颗星星。
古希腊数学家和科学家阿基米德(Archimedes)也对这类问题感兴趣。公元前3世纪,他写了一篇名为《数沙者》( The Sand Reckoner )的短文给锡拉库萨(又译作叙拉古)国王革隆(Gelon)。这篇面向非专业人士的短文既准确又清晰,也被认为是第一篇研究说明性论文。阿基米德在文中提出了一个问题:填满整个宇宙需要多少颗沙粒。
当然了,这个问题的答案取决于沙粒的平均大小和宇宙的大小。按照阿基米德非常慷慨(甚至不切实际)的估算,一粒小米粒可以容纳一万颗沙粒,这使得一颗沙粒的大小几乎可以忽略不计。他还估算出,40粒小米粒并排放在一起,可以达到一根手指的宽度,大约19毫米。这样,一个直径为一指宽的球体可以容纳6.4亿颗沙粒。
阿基米德又根据前辈阿利斯塔克(Aristarchus)的经典日心说,估计了宇宙的大小。在当时的日心说所描述的太空模型中,地球绕太阳运行,恒星固定在一个同样以太阳为中心的球体上,但距离要远得多。当地球从太阳的一侧运行到另一侧时,古希腊人无法辨察出天空中恒星相对位置的任何变化,即所谓的视差,意味着恒星与太阳的距离必须有一个最小值。阿基米德据此估算出了当时已知宇宙的最小可能直径——写成现代单位,大约为2光年。
今天,我们可以很容易地通过数学计算得出,要填满一个直径2光年的球体需要多少颗阿基米德估算大小的沙粒。答案约为1后面63个零,也可以紧凑地写成10 63 ——10×10×10×…×10(有63个10相乘)。而阿基米德面临的问题是,在他那个时代,还没有我们这种表示大数的简便方法。我们现在使用的从0到9的阿拉伯数字,大约在其800年后才出现(而且还是出现在印度,不是在阿拉伯地区)。位值制记数法,即根据同一符号的不同位置来表示其数量级(例如30、300和3000中的3)的方法,彼时在古巴比伦还处于起步阶段,尚未传入古希腊。况且当时还没有指数这样的记数法,即一个数自乘多少次可以写成上标(即10 63 中的63)。
在阿基米德开始计算宇宙沙粒时,古希腊人还在用字母表中的字母表示数。我们现在的数——1到9,10的倍数(10到90)和100的倍数(100到900),那时都用不同的字母表示。我们熟悉的24个希腊字母,从α到ω(今天的希腊语中仍在使用),必须辅以取自更古老的语言和方言中的其他字母,才能提供足够的记号。α到θ代表1到9,ι到φ(源自腓尼基语)代表10的倍数(10到90),ρ到Ϡ(在爱奥尼亚东部一些方言中使用)代表100的倍数(100到900)。古希腊人不会在不同的位置重复使用同一个字母,例如,222会写成σκβ(=200+20+2)。对于1000的倍数(1000到9000),一些字母会重复使用,但须另附各种标记。这就是古希腊的记数系统所能达到的极限,除了murious——它是已定义的最大的单个单位,写作μ的大写Μ,相当于我们今天的10 000。罗马人称它为myriad,这一名称后来被英语吸收,但含义发生了变化,表示“无数的”或非常大(但未定义)的数。
使用上述字母串记数的方法,古希腊人可以写出比murious更大的数,但也只能是M的倍数。例如,1 234 567会写成ρκγΜ,δφξζ(123×10 000+4567)。但对于超过几亿的数来说,这种记数法很快就乏力了。
阿基米德意识到,要表示他在计算宇宙沙粒时所产生的那种巨大的数,必须想出一套全新的数字命名系统。阿基米德首先将所有不超过myriad myriad的数定义为“第一阶”的数,然后从这里开始无限延续下去。对我们来说这似乎并不是一个很大的进步,因为我们可以很容易地将myriad myriad写成10 4 ×10 4 ,也就是10 8 (1亿)。但是阿基米德开始他的大数项目时,并没有指数记数法,用指数来表示一个数自乘次数。
在将所有不超过myriad myriad的数定义为第一阶的数之后,阿基米德继而考虑了介于myriad myriad和myriad myriad乘以myriad myriad(1后面跟着16个0,也就是10 16 )之间的数,并将这些数称为“第二阶”的数。之后他依此类推,以同样的方式定义了“第三阶”“第四阶”的数——后一阶都是前一阶的myriad myriad倍。最终,他达到了“第myriad myriad阶”的数,换句话说,在指数记数法中,这个数是10 8 自乘10 8 次,即10 8 的10 8 次方,等于10 800 000 000 。他将所有这些数定义为“第一周期”的数,如果将其中最大的数完整写下来,会有8亿位。他把10 800 000 000 这个数作为“第二周期”的跳板,以它为起点再次开始这个过程。他用同样的方法定义了第二周期里的阶,每个新的阶都是前一阶的myriad myriad倍。到“第myriad myriad周期”结束时,阿基米德得到了myriad myriad的myriad myriad乘以myriad myriad次方这么大的数,我们可以将它写成10 80 000 000 000 000 000 ,即10的8亿亿次方。
请记住,阿基米德并不知晓我们书写大数的紧凑写法,古希腊数学中甚至没有零的概念。他从一个为超过几亿的数命名都困难的系统出发,创造了一种可以描述在10进制下有8亿亿位的数的方法。
事实证明,在数沙项目中,阿基米德并不需要这么大的数。利用他对一颗沙粒和整个宇宙大小的估计,阿基米德得出的数只达到了第一周期的第八阶。用指数记数法,仅仅8×10 63 颗阿基米德估算大小的沙粒就足以填满希腊人认知里直径2光年的宇宙。即便使用现代更大的估计——可观测宇宙的直径为920亿光年,填满它也用不到10 95 颗沙粒,而这个数刚刚才达到阿基米德第一周期的第十二阶。
《数沙者》是最前沿的工作。阿基米德不仅在有限的数据条件下提供了一幅与我们现在所知最接近的宇宙图景,而且发明了一种描述大数的全新方法。阿基米德是第一个在没有现代记数法的情况下解决了命名和操作大数问题的人。他使用以10 000为底的数字系统,有效地开创了幂运算——即将一个量提升到另一个量的幂次的过程。他还发现了同底数幂相乘指数相加的规律,即对于任意的数 x , m , n ,有 x m × x n = x m+n 。例如3 2 ×3 3 =(3×3)×(3×3×3)=3 5 。
阿基米德第一个证明了人有可能超越其时代传统——在他所处的那个时代,大数传统上被简单地称为“无数”。这种处理方式在描述沙粒和星星时尤为明显。比阿基米德更早的古希腊诗人品达(Pindar)在其《奥林匹亚颂》第二首( Olympus Ode Ⅱ )中写道:“沙粒无法计数。”希腊语中甚至还有一个词psammakósioi(字面意思“沙百”),就是用来表示“不可数的”。《圣经》的作者也放弃了沙粒和星星的计数。《圣经》里有21处提到不可能计算出沙粒的数量。《旧约·创世记》中说:“海边的沙,多得不可胜数。”《新约·希伯来书》更是将沙粒和星星混为一谈:“如同天上的星那样众多,海边的沙那样无数。”
正如我们所见,阿基米德并没有把自己局限在海边甚至整个地球的沙粒上。他想象整个宇宙都充满了小到几乎看不见的沙粒,这样就保证了同时代没有人能超过他估算的数。几百年后,世界另一个地方的学者,出于截然不同的目的,也写了一些关于大数的见解。如果能知道阿基米德会如何看待后人的努力,那将是一件很有意思的事情。
东方哲学,尤其是佛教,一直着迷于空间、时间和心灵的广袤。因此,这些思想体系的学者们最终转变观念,开始在最广大的宇宙尺度上用数来表示事物的年龄或程度,也就不足为奇了。写于公元3世纪的大乘佛教经典之一《方广大庄严经》中,有一段发生在已经去世数百年的佛陀(Gautama Buddha)和神秘数学家阿周那(Arjuna)之间的对话。佛陀在回答阿周那的问题时,阐述了一个基于拘胝(koti,又作拘梨,梵语“一千万”)的数值系统,令人晕头转向。佛陀在每一步都会说出一个百倍于上一步的数:1阿由多(ayuta)是100拘胝,1尼由多(niyuta)是100阿由多;以此类推,直到怛罗络叉(tallakshana),它等于1后面跟着53个0。佛陀解释说,在怛罗络叉的范围之外,还有一个度阇阿伽罗摩尼(dvajagravati),等于10 99 ,接着是其他6个递增的层级,直到随入极微尘波罗摩呶罗阇(uttaraparamanurajahpravesa),相当于10 421 [1] 。
尽管这个数已令人叹为观止,但佛陀的步伐才刚刚开始。在《华严经》中,佛陀揭示了一个不同且更强大的计数系统。
在《华严经》第30章里,佛陀解释了这个系统是如何开始的:
拘梨拘梨名一不变,不变不变名一那由他……
然后,佛陀继续以令人烦恼的细节,对每个后续的数进行平方,得到10 80 、10 160 、10 320 等等。经过数卷的逐项列出,他最终得到了10 101 493 392 610 318 652 755 325 638 410 240 。出于某种原因,佛陀认为这个数标志着某种极限,但遗憾的是,他并没有在经文中解释。他说,再平方一次会得到一个称为“无量”的数。接下来,他转向了平方的平方,也就是四次方。“无量”的平方是“无量转”;重复这个过程会得到“无边”。经过一些类似的步骤,以及对梵文辞典的遍历,我们就达到了“不可说”,它的四次方达到了最终的顶点——“不可说不可说”。然后,在最后的盛况中,佛陀说:
不可言说不可说
充满一切不可说
不可言说诸劫中
说不可说不可尽
我们并不清楚《华严经》的作者为什么要让佛陀在“无量”处停止精确的数学计算,转而采用一连串最高级的词汇。也许是他们厌倦了书写冗长的数字序列,也许是卷轴不够用了。不过,最有可能的原因是他们想给人这样的印象:最终,宇宙超越了常规的逻辑和分析,进入了一个只有开悟者才能接触到的领域。
无论如何,我们如今可以轻松地破解这些障眼法。强大的“不可说不可说”其实远非无法计算或不可言说,事实证明,它写成现代记数法是
10 10×2 122
大约是10 53 000 000 000 000 000 000 000 000 000 000 000 000 。这显然是一个非常巨大的数。阿基米德无疑会对它印象深刻,因为这个数一下就让《数沙者》中达到的最大数相形见绌了。阿基米德得到的最大数是10 80 000 000 000 000 000 ,而要想达到“不可说不可说”,你还得把阿基米德的数自乘约6.6万亿亿次。
为了让大家对他们各自宇宙的浩瀚无垠有大致印象,阿基米德和佛陀都使用了大数。对阿基米德来说,这更像是一项科学事业,而佛陀的目标似乎是激发人们对宇宙整体观的敬畏,这是传统思想无法企及的。阿基米德和佛陀是人类在追求描述越来越大的数的过程中早期攀上的两座相互隔绝的高峰。直到一个半世纪前,数学家才开始认真考虑这些开创性见解之外的东西:用一种可控的方式将大得无可比拟的数表示出来。
在实际应用中,无论是日常对话、经济学还是科学测量,英语大多会使用以“-illion”结尾的词来命名大数。如2020年世界人口约为78亿(7.8 billion),离我们最近的恒星比邻星在40.2万亿(40.2 trillion)千米外等等。这种命名数的方法起源于中世纪晚期,当时million(百万)一词开始在乔叟(Chaucer)的《坎特伯雷故事集》( The Canterbury Tales )等书中出现。million一词来自意大利语的millione,millione又来自拉丁语的mille(千)加上后缀-one(“百万”等于“一千个一千”)。bymillion(一百万个一百万)和trymillion(一百万个一百万个一百万)在15世纪70年代开始流行。1484年,法国人许凯(Nicolas Chuquet)提出,使用以-illion或-yillion结尾的词将数字名称完全系统化。
世人对许凯知之甚少,只知道他出生在巴黎,拥有医学学士学位,后来搬到里昂,30多岁早逝,客死他乡。许凯当然不是一位杰出的数学家,他只有一项至今为人们所铭记的成就:一篇名为《算术三编》( Triparty en la science des nombres )的文章。直到1880年,也就是许凯去世将近四个世纪后,这篇文章才由发现他手稿的语言学家马尔(Aristide Marre)发表。随后人们发现,许凯的学生罗什(Estienne de la Roche)在其著作《代数》( l’Arismetique ,1520)的第一部分,基本上剽窃了自己老师的著作。
许凯在《算术三编》中写下了一个非常大的数——7 493 248 043 000 700 023 654 321——然后从右开始,将它分成六位一组。第一个记号是million(百万),然后:
第二个记号是byllion,第三个是tryllion,第四个是quadrillion,第五个是quyillion,第六个是sixlion,第七个是septyllion,第八个是ottyllion,第九个是nonyllion,以此类推,想走多远就走多远。
时至今日,英语中仍在使用这些名称,只是把单词中的“y”换成了“i”,并做了其他细微的修改。唯一的区别是,在英语国家和其他一些国家,人们已经普遍接受了billion是10亿(10 9 )而不是1万亿(10 12 )。后来,又出现了两种不同的大数命名系统,法国数学家吉特尔(Geneviève Guitel)在1974年将它们分别描述为“长尺度”和“短尺度”。在前者中,100万之后的每一项,都定义为前一项的100万倍;而在后者中,跨度则是1000倍。在英式英语中,直到20世纪70年代中期前后,这两种系统还在并行使用。如今,长期受北美青睐的短尺度已被大多数英语国家、阿拉伯语国家,以及巴西、俄罗斯等国采用,而长尺度在其他地方仍然流行。使用quad-、quin-、sex-、sept-等前缀,短尺度系统很容易就可以扩展到一万亿以上。例如,用短尺度表示,quadrillion是trillion的1000倍,即10 15 ;quintillion是quadrillion的1000倍,即10 18 ,以此类推。每乘以1000,前缀就后移1个。如果我们采用“每增加3个0,拉丁或希腊数字的前缀就后移1个”这样的命名约定,那centillion(cent-意为100),相当于1后面跟着303个0,就是标准英文词典里能列出的最大的数。
直到几个世纪前,对于远大于100万的数,还真不需要命名——除非你在做一些不寻常的事情,比如数沙粒或颂扬东方哲学。直到19世纪初,世界人口才刚突破10亿;后来原子被发现,天文学家才开始估测我们的银河系中有多少颗恒星,更不用说银河系之外的那些星星了。但是,纯数学家并不受物理现实的限制,他们很早就意识到数会一直持续下去,为了描述这些数而设计的任何系统最终都会被远远甩在后面。那些既没有方便的名称、也没有简洁的方法来表示的数,在文艺复兴初期就已经完全无法被人们接受了。
许凯系统化了用“-illion”命名数的方式,而阿基米德和9世纪波斯的花拉子米(Muhammad ibn Musa al-Khwarizmi)、15世纪中叶的卡拉萨迪(Abu’l Hasan ibn Ali al Qalasadi)等人则为幂运算奠定了基础。“指数”一词是德国数学家、僧侣施蒂费尔(Michael Stifel)在1544年创造的。最后在16世纪初,法国数学家、哲学家笛卡儿(René Descartes)在其著作《几何学》( La Géométrie )的第一卷中引入了 x n 这一记号,读作“ x 的 n 次方”(尽管他当时更多的是从几何而非代数的角度来考虑的)。在表达式 x n 中, x 是一个数,称为底数; n 是指数。人们也常常称 n 是 x 的幂,尽管严格来说,如果 a = x n ,那么 a 才是 x 的幂,而不是 n 。
正如乘法可以看成是重复的加法(4×3=3+3+3+3),幂运算也可以看成是书写和执行重复的乘法的紧凑方式(6 5 =6×6×6×6×6)。幂运算或者以指数形式运算足以处理极其巨大的数,几乎能够满足我们的所有需要——除了我们将在本书中遇到的许多例外!像100 000 000 000 000 000 000(1万亿亿)这样的数,可以紧凑地写成10 20 ,读作“10的20次方”,或简单地说就是“10自乘20次”。
在大多数情况下,用“-illions”来描述大数就可以了。不过,有时为某个特定的大数取一个特殊的名字也不错。1920年的一天,美国数学家卡斯纳(Edward Kasner)和他的两个外甥:9岁的米尔顿·西罗蒂(Milton Sirotta)和弟弟埃德温·西罗蒂(Edwin Sirotta)沿着帕利塞德陡崖(新泽西州哈德逊河沿岸的悬崖)散步。卡斯纳和他们谈论起数,以及数能有多大——比如说,大到1后面有100个0。卡斯纳后来在与纽曼(James Newman)合著的《数学与想象》( Mathematics and the Imagination ,1940)一书中回忆道:“(米尔顿)非常确定这个数不是无限的,因此也同样确定它必须有一个名字。”米尔顿想出的名字是“古戈尔”(googol)。与此同时,米尔顿还提议用“古戈尔普勒克斯”(googolplex)表示一个更大的数。卡斯纳写道:
正如这个名字的发明者迅速指出的那样,虽然古戈尔普勒克斯比古戈尔大得多,但它仍然是有限的。他还提出古戈尔普勒克斯应该是在1后面不断地写0,直到你写累为止。这描述了如果一个人真的尝试写下古戈尔普勒克斯时的情形,但不同的人感觉疲倦的时间不同,不能仅仅因为耐力更强,卡内拉(Carnera,重量级拳击冠军)就是比爱因斯坦(Alber Einstein)博士更好的数学家,这是绝对不行的。
卡斯纳更加精确地定义了古戈尔普勒克斯:1后面有古戈尔个0,即10 古戈尔 。虽然很难想象古戈尔,但古戈尔可以很容易地完整写出来:
10 000 000 000 000 000 000 000 000 000 000 000 000 000
000 000 000 000 000 000 000 000 000 000 000 000 000 000
000 000 000 000 000 000
古戈尔普勒克斯更是大得惊人。地球上没有足够的纸,或者说整个可观测宇宙中,都没有足够的物质来写完古戈尔普勒克斯包含的所有数字,即使你把每个0都写成亚原子粒子那样小也不行。古代命名的任何数,包括强大的“不可说不可说”在内,与古戈尔普勒克斯相比都黯然失色。
提到“古戈尔”或“古戈尔普勒克斯”,大多数人都会立即想到那个无处不在的搜索引擎或它现在的总部所在地。1996年,后来成为谷歌(Google)创始人的斯坦福大学博士生佩奇(Larry Page)和布林(Sergey Brin)正在美国加利福尼亚州门洛帕克的一间由车库改造的临时办公室工作。这间车库是他们的共同好友、后来成为YouTube首席执行官的苏珊·沃基奇(Susan Wojcicki)租给他们的。两人将他们的搜索引擎原型命名为“BackRub”,因为它可以分析网页的反向链接(即指向某个网页的链接)。但随着其搜索技术的迅速改进,他们想为新产品找到一个更具商业吸引力的名字。1997年9月,佩奇和同事们准备了一块白板,在“苏珊的车库”里进行了一次头脑风暴,想找出一个能体现“对大量数据进行索引”这一想法的词。在场的一位研究生安德森(Sean Anderson)建议用“googolplex”,佩奇立即把这个词缩短成了“googol”。安德森坐在电脑系统前,登入互联网域名注册中心检查这个名字是否可以注册使用。但他误把这个词拼成了“google”,他检查了“google.com”(而不是“googol.com”),发现它还没被占用。佩奇喜欢这个名字,几小时内就注册了“google.com”。
这个名字无疑令人联想到现在网络索引中涉及的海量数据。2017年,谷歌报告称它存储了大约30万亿页的信息。谷歌、微软、亚马逊和脸书之间至少拥有1200 PB(1.2×10 15 字节)的数据——并且这个数字还在逐月快速上升。如果谷歌在接下来几个世纪里保持其索引的平均年增长率(这倒是不太可能!),那么到2698年,它将会索引到1古戈尔普勒克斯这么多页面。
在古代,只有像阿基米德这样的少数智者领悟到非常大的数可能与现实世界有关。但今天,我们听到数十亿和数万亿的东西,都已经见怪不怪了。科学家和数学家发现的数,甚至让古戈尔都显得很小。但我们能真正掌握这些数的大小吗?(更不用说我们以后在寻找最大数的过程中所遇到的许多其他数)不,即使是最伟大的数学天才也做不到。我们能做的,是尝试找到一些词语或概念,在我们熟悉的世界(我们能感知到的或在想象中构建的世界),与远远超出物理宇宙容纳能力的数之间,架起一座桥梁。
[1] 对照[唐]地婆诃罗的中译本《方广大庄严经》卷12及Dharmachakra翻译委员会的英译本 The Play in Full ,从度阇阿伽罗摩尼出发,要经过7个递增的层级——分别是度阇阿伽摩尼舍梨(dhvajāgra-niśā-manī)、婆诃那婆若尔炎致(vāhanaprajñapti)、伊吒(ingā)、古卢鼻(kurutu)、古吒鼻那(kurutāvi)、娑婆尼叉(sarvaniks s epā)、阿伽罗娑罗(agrasārā)——才能到达随入极微尘波罗摩呶罗阇。阇阿伽罗摩尼为10 99 ,按照每10 46 一个层级,随入极微尘波罗摩呶罗阇应为10 467 。常见的英译本中一般缺失“古吒鼻那”这一项,因而导致随入极微尘波罗摩呶罗阇误为10 421 。