有这样一则故事,两个匈牙利贵族决定玩一个游戏,每人各说一个数字,说出最大数字者赢。
“来吧,”其中一个人说,“你先说你的数字。”
经过好一番冥思苦想,另一个人终于说出了他所能想到的最大的数字。
“3。”他说。
现在轮到第一个人绞尽脑汁了,但是,他最终还是认输了。
“你赢了。”他承认道。
这两个匈牙利人的知识水平确实不高,并且这个故事也可能只是一种恶意诋毁,并不可信,但是如果将故事的主人公换成两个霍屯督人(Hottentots,非洲部落),那么以上的对话就完全会真实发生。据很多非洲探险家所说,在很多霍屯督部落中,并没有用来表示比3大的数字的词汇。若去问一个原住民他有多少个儿子或曾手刃过多少敌人,如果该数字大于3,那么他就会回答“很多”。因此,在数数方面,再凶猛的霍屯督战士也会被已经能够数到10的美国幼稚园儿童打败。
现在,大家已经习惯性地认为,我们想写多大的数字就能写多大——无论是以美分来计算军费,还是以英寸丈量星球间的距离——只要在某个数字右边加上足够多的0就可以了。你可以不断地加0,直到手都酸了,这样不知不觉中就可以写出一个比宇宙中所有原子数量 还大的数字,顺便一提,该数量是:
300000000000000000000000000000000000000000000000000000000000000000000000000
或者你也可以写成这种简略形式:3×10 74 。
其中,位于10右上角的74表示数字3后面有74个0,换句话说,这个数字是用3乘上74次10。
但是,古人们并不知道这种“简明算术”系统。实际上,这种由某不具名的印度数学家发明的表示方法存在了还不到两千年。在他的伟大发明之前——虽然通常我们并没有意识到这一点,但这的确是一项伟大的发明——人们用十进制来计数,每位数都用一个特殊符号来表示,该位数上是几,就将其代表符号重复几遍。例如,古代埃及人是这样记录8732的:
而恺撒政府里的书记官则会以这种形式来表示:
MMMMMMMMDCXXXII
后面的记号对大家来说应该很熟悉,因为罗马数字至今还不时地能派上用场——或者用于表示书籍的册数或章节数,或者用在宏伟的纪念碑上以表示某一历史事件的日期。然而,由于古人对于计数的需求不会超过几千,因此也没有用来表示更高位数的符号,所以,如果一个古罗马人被要求写出“一百万”,哪怕受到过最好的算术训练,他也会感到十分为难。为了达到这个要求,他所能想到的最好方法就是一连写上1000个M,这可够他忙碌几个小时的了。
对于古人来说,天上有多少星星、海里有多少条游鱼和沙滩上有多少颗沙粒这样巨大的数字都是“不可计算的”,就像对霍屯督人来说5也是“不可计算的”,因而只能用“很多”来表示一样。
公元前3世纪,著名的科学家阿基米德 曾开动脑筋,想出了记录非常大的数字的办法,他在专著《数沙者》( The Psammites ,或叫 Sand Reckoner )中这样写道:
有人认为沙粒的数量是无限的。我这里所说的沙粒可不单单指叙拉古 或者西西里岛(Sicily)的其他地方,而是指地球上所有的沙粒,无论是人类居住区还是无人区。也有一些人相信沙粒的数量并不是无穷的,但是他们也认为我们无法说出一个比所有的沙粒的数量还大的数字。如果让持有此观点的人想象有一个大如地球的沙堆,其中的山谷和海洋都被沙子填满,直到如最高的山峰一样高,他们就会更加确定,比以上提到的所有沙粒的数量还大的数字是不可能被表达出来的。但是我现在不仅可以说出比用上述方法在地球上所堆积出来的沙粒的数量还大的数字,还可以说出比以同样的方法将堆满整个宇宙的沙粒的数量也大的数字。
阿基米德在这一著作中所提出来的记录大数的方法颇类似于现代科学计数方法。他从古希腊算术中最大的数字单位万(myriad)开始,引进了一个新的数字“万万”(octade),也就是“亿”作为第二级单位,然后是“亿亿”(octade octade)作为第三级单位,“亿亿亿”(octade octade octade)作为第四级单位,以此类推。
专门用几页的篇幅来介绍大数字的书写方法看起来似乎有些小题大做,但在阿基米德时代,找到书写大数字的方法不仅是一项伟大的发现,还促使数学向前迈出了重要的一步。
为了计算填满整个宇宙所需要的沙粒数量,阿基米德首先要知道宇宙的大小。在当时,人们认为宇宙封闭在一个镶嵌着群星的水晶球里,与他同时代的著名天文学家萨摩斯的阿里斯塔克斯 估测,从地面到水晶球边缘的距离约为10000000000希腊里(Stadia ),相当于1000000000英里。
阿基米德将水晶球与沙粒的大小进行对比,完成了一系列能将高中生吓到做噩梦的计算,最终得到了以下结论:
“毫无疑问,阿里斯塔克斯所预测的水晶球大小的空间里所能容纳的沙粒的数量不会超过一千万个第八级单位 [1] 。”
这里大家可能注意到,阿基米德所预测的宇宙半径远远小于现代科学家的预测。10亿英里的距离刚刚超过土星到太阳的距离。要知道,望远镜所能探测到的宇宙距离现在已达到5000000000000000000000英里,所以要填满目前可见的宇宙,所需要的沙粒数量应当超过10 100 (1后面跟100个0)。
这个数字当然比前面提到的宇宙中所有原子的数目3×10 74 大得多,但是别忘了,我们的宇宙并不是装满了原子的,实际上,宇宙中每立方米的空间里平均只有一个原子。
但是为了得到大数字而大动干戈,将整个宇宙填满沙子是完全没有必要的。事实上,在一些乍一看非常简单,那些你可能本来以为不会遇到超过几千的数字的问题上,却常常会遇到意想不到的大数字。
印度舍罕王(King Shirham of India)就曾吃过大数字的亏。传说,大宰相西萨·本·达依尔(Sissa Ben Dahir)发明了象棋并将其呈送给国王,因此舍罕王想要奖赏他。这位聪明的宰相的要求似乎并不过分,“陛下,”他跪拜在国王面前说,“请将一个麦粒放在棋盘的第一格,将两个麦粒放在棋盘的第二格,将四个麦粒放在第三格,八个麦粒放在第四格……按照这个方法,使得每一格的麦粒的数量都是前一格的两倍。陛下,请赏赐我能填满整个棋盘上64格的所有麦粒吧。”
“噢,我忠实的仆人,你的要求倒是不高,”国王感叹道,心里窃喜他给这项神奇的游戏的发明者的慷慨许诺不会耗费他多少财宝,“你必将如愿以偿。”然后他命人搬一袋麦子到王座前。
当计数开始,一粒麦子被放到第一格,两粒被放到第二格,四粒被放到第三格,一直这样往下放,但是还没等放到第二十格,一袋麦子已经用完了。更多的麦子被送到国王面前,但是每往下数一格,所需要的麦粒数量迅速增长,以至于大家很快就明白,哪怕倾尽印度所有的麦子,国王也无法实现他对宰相的承诺,因为那可是18446744073709551615粒麦子 [2] !
这个数字并不像宇宙中所有原子的数量那样大,但也是一个相当大的数字了。假设1蒲式耳小麦大概有5000000粒,那么要满足西萨的要求就需要约40000亿蒲式耳小麦。全球小麦年均产量大约为2000000000蒲式耳,而大宰相要求的数量相当于全球2000年小麦的产量。
于是,国王发现自己已债台高筑,他要么以后不断地还债,实现对宰相的承诺;要么干脆砍了宰相的头。我们猜他应该是选择了后者。
另一个以大数字为主角的故事也发生在印度,讨论的是关于“世界末日”的问题。数学猜想历史学家鲍尔 讲述了这样一个故事 [3] :
在世界的中心贝拉那斯 宏伟的神殿中,安放着一块铜板,铜板上有三根金刚石针,每根有1肘尺长(1肘尺约为20英寸),如蜂针一样细。在创世之时,主神梵天将64个纯金圆片放在了其中一根针上,最大的金片放在最下面紧贴着铜板,越往上金片越小。这就是婆罗门之塔。夜以继日,当班的僧侣必须将这些金片从一根针上移到另一根针上,根据梵天给出的固定法则,僧侣每次只能移动一个金片,并且金片必须被放在某个针上,还要确保大的金片不会被放在小金片的上面。当64个金片都被从天神已穿好的针上移动到另一根上时,梵塔、寺庙及众生都将化为灰尘,伴随着一声霹雳,整个世界都会消失。
你可以自己动手做一个这样的解谜玩具,用硬纸板代替金片,用长铁钉代替印度神话中的金刚石针。要发现移动金片的总体规律并不难,你很快就可以看出,每成功转移一个金片所需要的移动步数都是前一个的两倍。第一个金片只需移动一下,但随后移动的金片所需的步数呈几何级数增长,所以到第64个金片时,总共所需要的移动步数与西萨要求的麦粒的数量一样多 [4] 。
将婆罗门之塔上的64个金片从一根针上全部转移到另一根上面需要花费多长时间呢?假设僧侣们全年无休,夜以继日地工作,每秒可以移动一步,而一年大约有31558000秒,因此大约需要超过5800亿年的时间才能完成这项工作。
将这个纯粹传说中的宇宙周期的预言与现代科学的预测略作对比倒是挺有趣的。根据现代宇宙进化理论,恒星、太阳和行星,也包括我们的地球,都是由一些无定形的物质于大约30亿年前形成的。我们也知道,给恒星,尤其是太阳提供能量的“核燃料”还能再维持100亿到150亿年 。因此,我们的宇宙的总寿命绝对不会超过200亿年,更不要提印度神话中预测的5800亿年了。不过,传说毕竟只是传说!
文字记载中所提及的最大的数字可能就是来自著名的“印刷行问题”了。假设我们制造出一台打印机,这台机器可以打印出一行又一行的文字,并且打印每一行时都会自动选择一种不同的字母与印刷符号组合,该机器由很多单个的边缘刻有字母和数字的圆盘组合在一起,圆盘之间像汽车的里程表那样连接,这样每当一个圆盘转动完一周,就会带动下一个圆盘向前转一个符号,每转动一下,随着滚筒转动带动纸张前移,一行文字就被打印上去了。要做这样一台自动打印机并不难。
现在我们让这台机器运行,并看一看它打印出来的不计其数又各不相同的字符行,其中大部分都没有什么意义,它们看起来是这样的:
“aaaaaaaaaaa...”
或者是:
“boobooboobooboo...”
又或者是:
“zawkporpkossscilm...”
但是既然这台机器打印出了所有的字母与符号组合,所以在这堆毫无意义的垃圾中我们会发现一些有意义的句子,当然其中有很多都是胡言乱语。
例如:
“horse has six legs and...”(马有六条腿和……)
或者是:
“I like apples cooked in terpentin...”(我喜欢松节油做的苹果……)
但是仔细找找,其中一定也包括了莎士比亚所写的每一行文字,甚至包括那些被他扔进废纸篓里的草稿纸上的句子。
事实上,这台打印机可以打印出人类自学会书写以来所写出的所有语句:每一行散文、每一句诗、报纸上的每一篇社论和每一则广告、每一篇冗长的科学论文、每一封情书、每一份给送奶工的留言……
不仅如此,这台机器还能打印出未来将要被印出的文字。我们在那张滚筒下的纸上可以找到20世纪30世纪的诗歌、未来的科学发现、将会在第500届美国国会上发表的演讲,以及2344年星际交通意外的统计数量。还会有一篇又一篇尚未被创作出来的短篇故事和长篇小说。如果出版商们的地下室里有这样一台机器,他们要做的只是从垃圾堆中挑选出好的片段加以编辑就好了——反正他们现在差不多也在做这样的事情!
为什么不能这么做呢?
让我们统计一下要将所有的字母与印刷符号的组合全部写下来需要多少行。
英语中有26个字母、10个数字(0,1,2,3,4,5,6,7,8,9)和14个常用符号(空格、句号、逗号、冒号、分号、问号、感叹号、破折号、连字符、引号、省略号、方括号、圆括号、大括号),一共50个符号。让我们假设这台机器上有65个轮盘,与每一行平均有65个位置一一对应。一行中的第一个字符可能是以上50个字符中的任意一个,也就是有50种可能性,每一种可能性中跟着的第二个字符也可能是以上50个字符中的任意一个,这又是50种可能性,到此,总共有50×50=2500种可能性。而对于这前两个字符的每一种可能性,第三个字符也仍有50种可能性,以此类推。所有可能的组合的行数可以用以下算式表达:
50乘上65次
50×50×50×…×50
或者是:
50 65
也等于:
10 110
为了更直观感受一下这个数字的浩大,我们可以假设宇宙中的每一个原子都是一台打印机,这样我们就有3×10 74 台打印机同时工作。进一步假设所有这些打印机自宇宙形成以来就一直在不间断地工作,到现在已有30亿年,也就是10 17 秒,其打印效率相当于原子的振动频率,相当于每秒打印10 15 行。到现在应该已经打印出3×10 74 ×10 17 ×10 15 =3×10 106 行字——而这些也仅仅是总数的三千分之一。
看来,要从这些自动打印出的材料中选出点儿什么确实要花相当长一段时间了。