0的诞生
人类文化的历史长河滔滔向前,
0的发现将一如既往地耀眼夺目,
永远被视为人类史上最伟大的成就之一。
——托拜厄斯·丹齐克 《数字:科学的语言》
古希腊人对数学的理解要优于古埃及人。古希腊数学家从古埃及人那里学习几何学的奇奥,掌握通透之后,很快便超越了他们。
起先,古希腊人构筑的数学体系与古埃及人的非常相似,计数系统同样以10为基础,只在记数方式上稍有差别:古埃及人用图形代表数字,古希腊人则用字母。H(希腊字母表第七个字母)表示100, M(字母表第十二个字母)表示10000——“万”是该系统中最大的计数单位。5也有对应的象征符号,说明古希腊人采用的是五进制与十进制混合的计数系统,不过总体来说,古希腊人与古埃及人的记数方式几近相同——至少在某一段时期确是如此。与古埃及人不同的是,古希腊人不久便抛弃了这套原始的记数方法,进而发展出另一个更加高级复杂的系统。
图表1:不同文明的数字
按古埃及人的记数方式,两个笔画代表2,三个符号H则代表300,但在公元前五百年,古希腊发展了一套新的记数系统,在此体系中,2、3、300均有各自不同的象征字母,其他数字亦如是(见图表1),这样可以避免符号的重复使用。比如,古埃及记数系统需要十五个符号来表示87,包括八个根骨形状符号和七个直角符号;而新的古希腊记数系统只需两个符号,π表示80, ζ表示7(虽然古罗马记数系统淘汰了古希腊数字,但其实它更接近于较为低级的古埃及记数系统,实则是一种倒退,它需用七个符号来表示87,即LⅩⅩⅩⅤⅠⅠ,其中明显可见有几处重复)。
尽管古希腊记数系统比古埃及的更加精细,但它并不是古代最先进的数字书写体系,这一荣誉称号花落东方——古巴比伦数字。得益于这一系统的发明,“0”终于在东方的新月沃地(位于今伊拉克境内)闪亮登场。
乍看之下,古巴比伦记数系统似乎有些违背常理。一方面,它竟是以60为基础的六十进制系统,这样的选择未免让人觉得古怪,因大部分文明都选用5、10或者20作为计数基础。而且,此系统只有两个记数符号:垂直楔形代表1,两个横向楔形代表10。将以上符号按需重复记录,归为一组,便可代表1~59之间的任意整数。这就是古巴比伦记数系统的基础符号,就像古希腊系统以字母为基础、古埃及系统以图形为基础一样。不过,这还不是古巴比伦记数系统真正古怪的地方。古埃及和古希腊记数系统中,每个符号都只能代表一个数字,古巴比伦系统则不然,此系统中一个符号能代表众多不同的数字,比如,单个楔形符号不仅能表示1,还能表示60、3600等无数其他数字。
用现代的眼光审视古巴比伦记数系统,难免觉得它奇怪陌生,但对于古代人来说,它确实十分合理,就相当于青铜器时代的计算机代码。与其他许多文明一样,古巴比伦人也发明了一些器械辅助计算,其中最著名的当属算盘,不同国家的人对其称呼各有不同,日本人叫它soroban,中国人称其suan-pan,俄语中叫作s'choty,土耳其人赋予它coulba的名字,在亚美尼亚地区则有choreb的称谓。算盘利用可滑动的小卵石来记录数字,英语词汇calculate(计算)、calculus(微积分学)和calcium(钙)均源自拉丁语中的卵石一词——calculus。
用算盘添加数字并非难事,只需将石子上下移动。不同列圆柱上的石子分别代表着不同的数值,通过巧妙的拨弄操作,熟练的使用者可以快速进行大额数字的加法计算。计算完成后,使用者只需查看算盘上各个石子的最终位置,再将其换算为数字。这一连串操作可谓简单明了。
古巴比伦数字常题刻在泥板上。可以把每一组符号想象成算盘上的石子,就像算盘上每一列圆柱上的石子都有各自的数值一样,每一组符号根据位置的不同,其对应的数值也相应变化。这样,古巴比伦数字与我们今日使用的记数系统也就没有太大的差别了。数字111中的每一个1皆表示不同数值,从右至左分别指代“1”“10”和“100”;同样地,古巴比伦数字“▼”中,不同位置上的三个“”相应地代表“1”“60”或“3600”。这样的记数方式与算盘几无二致,不过,又有一个问题出现:古巴比伦人是如何书写数字“60”的?数字1很容易书写——,但60同样写作,位置是两者唯一的区别。算盘上,第一列的单个石子和第二列的单个石子之间泾渭分明,因此利用算盘可以轻松分辨出“”代表的究竟是哪个数字。然而,书面记录又是另一番迥然不同的情况,因无法明确呈现书写符号具体位于哪一列,“”既能够指代1,也可以代表60或者3600。当数字混合使用时,情况则更加复杂,“”可能指称61、3601、3660甚至更大的数值。
0就是解决这一问题的灵丹妙药。公元前三百年左右,古巴比伦人开始使用两个倾斜的楔形()代表一个空档,相当于算盘上的一列空柱(即一列上的所有石子皆在底端)。这样的占位符号(placeholder)使人们不费吹灰之力便可辨识出各符号所处的具体位置。在0显露真身之前,可解读为61或者3601,但有了0,只能指称61,而3601则应书写为(见图表2)。0的出现就是为了赋予任意给定序列的古巴比伦数字一个唯一且固定的数值。
图表2:古巴比伦数字
尽管0益处甚大,但此时的它只是一个占位符号,仅代表算盘上的一列空柱,旨在确保各个数字都落在正确的位置上,其本身并无任何数值意义。000002148指称的数值含义与2148并无二致,在一串数字字符中,0只能从它左侧的数字那儿获得存在的意义,若究其本身,它并无任何意义。0只是一个数位,一个用来表达某个数字的数值的符号,称不上一个具有具体数值的数字。
一个数字的数值取决于它在数轴上的位置,或者说,取决于它与其他数字的相对位置,比如,数字2必定在数字3之前、数字1之后,不可能居于其他区间。起初,数轴上并没有专属于0的位置,因为它仅是一个符号,在位次森严的数字等级序列中找不到它的栖身之所。甚至到了今天,尽管我们已经清楚地知道0本身确实具有数值,但我们偶尔仍会将0当作占位符号使用,而没有将它与“数字0”联系起来。抓起一部手机或随意看一看手边的电脑键盘,你会发现,0总在9之后,而没有出现在它本该在的位置上——1之前。若只作为占位符号,0在哪个位置实则无关紧要,它可以出现在数字序列的任意一处。但今天我们都明白,0不能在数轴上随意安身,因为它具有一个确切的数值含义,它担纲着正数与负数的界标的角色,它还是一个整数、一个紧靠在1之前的偶数。0必须安分地待在数轴上的正当位置上,-1之后、1之前,其他位置皆荒谬无理。然而,由于我们总是习惯从1开始数数,0只能在电脑键盘的末尾、手机键盘的底端落座。
1似乎是计数的合适起点,但如此一来,0难免陷入尴尬境地。然而,对于其他一些文明,比如聚居于墨西哥和中美洲的玛雅人,他们似乎认为从1开始计数是不太恰当的。事实上,玛雅人也自创了一个数字系统和一套历法,而且这个系统似乎比我们今天使用的数字系统和历法更加合理。与古巴比伦人一样,玛雅人也采用了位值制(place-value system),而两个记数系统的唯一差别在于,古巴比伦人选择了六十进制,而玛雅人使用的是留有早期十进制残余痕迹的二十进制。与古巴比伦数字系统相仿,玛雅记数系统同样需要一个0来标记每个数字符号的位置,从而确定其数值。为了增加趣味性,玛雅人创造了两种数字符号。较为简易的那一种以点和线为基础,另一种则更加繁复,选用的基本表示符号是图象字符——大体为风格奇异的人脸形状。按照现代的眼光看,这些玛雅图象字符(见图表3)活脱脱就是一副外星人的面孔。
与古埃及人一样,玛雅人也缔造了一部十分卓越的阳历。因为他们的计数系统以数字20为基础,自然而然也就规定一个月有20天,一年划分为18个月,即360天,此外年末有一个为期5天的特殊时段,称为“无名日”(Uayeb),如此全年总计365天。玛雅人的记数系统中有0,因此他们总是从0开始计算天数,在这一点上与古埃及人略有分别。比如,名为Zip的这个月的第一天常被称作“位于Zip”,接下去的那一天为1 Zip,紧接着为2 Zip,以此类推,直到月底最后一天为19 Zip,紧挨着Zip的月份名为Zotz',于是,19 Zip的隔天为“位于Zotz'”,随后是1 Zotz'、2 Zotz',等等。玛雅历法中每个月有20天,以0~19编号,而非当今通行的1~20号。(玛雅历法之复杂令人惊叹,除了上述介绍的这套阳历,他们还制定了另一部具有浓厚宗教色彩的历法,该历法一个周期为260天,共20周,每周13天。两部历法相互结合,组合形成持续52个阳历周期,即52年的同步循环,称为历法循环。)
图表3:玛雅数字
玛雅体系比西方的历法体系更加合乎情理。西方历法创立之时0尚未出现,因而自然不会出现“第0天”“第0年”此等称谓。这一疏忽从表面上看似无足轻重,实际上却带来了许多麻烦,引发了关于千禧年开端的一系列论战:迈入21世纪的第一个年头究竟应该是2000还是2001?玛雅人就绝不会为之起争论。然而,制定如今通用历法的并不是玛雅人,而是古埃及人以及他们的后来者,古罗马人。所以,我们不得不与这样一部麻烦频出、无0之踪迹的历法且伴且行。
古埃及文明中0的缺失不仅于历法不利,而且有碍西方数学的长远发展。事实上,古埃及文明对数学未来发展的阻滞绝不止于0的缺席。古埃及人处理分数的方式极其繁琐累赘,他们不似现代人,把3/4看成一个比率,而是将其解读为1/2与1/4的相加结果。除了2/3这个唯一例外,其他所有古埃及分数均表示为一连串形式为1/n(n为自然数)的分数的总和,并且称1/n为单位分数。冗长的单位分数链使得分数的处理成为古埃及(还有古希腊)记数系统中非常棘手的难题。
0的横空出世淘汰了这个效率低下的分数处理体系。在古巴比伦记数系统中,由于0的存在,分数的书写变得十分简便。现代数学用0.5表示1/2、0.75表示3/4,古巴比伦人则用数字“0;30”指称1/2、“0;45”指称3/4。(事实上,比起现代普遍使用的十进制,古巴比伦的六十进制计数系统更适用于书写分数。)
遗憾的是,古希腊人与古罗马人对0憎恶入骨,紧紧攥着与古埃及数字系统一脉相承的记数法不肯放弃,纵使古巴比伦记数系统使用更加简便,他们也不愿转头投向它的怀抱。对于一些复杂运算,如制定天文表所需的计算,古希腊记数系统的处理方式未免过于冗杂。于是,古希腊数学家先将单位分数转换为古巴比伦的六十进制数系进行运算,然后再把最终结果换算成古希腊数字。他们本可省下这些耗费时间的换算步骤(对于来回往复地换算分数是一件多么“有趣”的事情,我们大多深有体会)。但古希腊人对0实在鄙薄至极,所以,即便他们已亲身感受到0的益处,却始终不愿在书写体系里为它奉上一席之地,理由无非只有一个——0非常危险!