在人类文明发展的早期,随着农业耕作、商品贸易和工程建设等生产活动的规模不断扩大,“鸟翼”和“苜蓿叶”已经无法满足人们对数字记录和数学计算的实际需求。在前文中,我们探讨了数字诞生的逻辑。接下来,我们将深入了解这一特殊的历史时期,数字及计数系统是如何发展起来的。
有意思的片段自然发生在文字诞生之后,世界各地的优秀文明都不约而同地建立起一套数字的符号表示方法和相对成熟的计数系统,其中,古巴比伦文明和古埃及文明的成果尤为突出,具有代表性。
古巴比伦作为四大文明古国之一,其璀璨的文明可以写下一整本书。在数学上,古巴比伦文明最亮眼的成就是发明了以六十进制为主要记数法的计数系统,并广泛应用于生产生活和天文历法中。为什么说它最亮眼呢?因为只有建立了以位置记数法为核心的计数系统,大数字的表示才成为可能。试想一下,如果我们仅仅掌握“鸟翼”“苜蓿叶”“兽足”这些简单的基数符号,那么大批量的商业贸易结算、大范围的土地和房屋丈量、大规模工程建设的工时和劳动力的计算都将变得极为困难。古巴比伦文明发祥于两河流域的美索不达米亚平原,那里土地肥沃、交通发达,人类的生产实践活动极为丰富,古巴比伦人想尽一切办法发展出了与经济基础相称的数学。图5-1展示了古巴比伦数学中数字的表达方式。
图5-1 古巴比伦数学中数字的表达方式
在图5-1中,我们可以清楚地看到古巴比伦的计数系统是如何表示数字的,对于60以下的数字用以1和10为基本单位组合而成的特殊符号来表示。而对于60以上的数字,则由这些特殊符号按照位置顺序依进位制算法排列而成。古巴比伦数字3916的表示方法如图5-2所示。
图5-2 古巴比伦数字3916的表示方法(图片元素来自图5-1)
在历史学家的研究中,这些文字被称为“楔形文字”,承载这些文字的材料被称为“泥板书”。由于泥板在晒干后坚硬易于保存,因此古巴比伦时期的大量文明成就得以流传至今。其中最著名的就是古巴比伦王朝的一位国王在公元前1700年左右颁布的人类历史上第一部成文的法典——汉谟拉比法典。这部法典现保存在法国巴黎的卢浮宫。
古巴比伦的进位制记数法看起来很美好,但实用性却要打上一个大大的问号。以今天的观点来看,这一记数法有一个明显的缺陷:它无法明确表达在某个位置上没有数字。例如,图5-2中表达3916的符号,虽然看似拥有固定的形式,但实际上可能代表了两个完全不同的数字:3916和216316。原因是为了表达3916,我们把图中表示1的符号看成从右边数起第三个位置上的数,而在表达216316时则把这个符号看成从右边数起第四个位置上的数,从而
这无疑给实际应用带来了诸多不便。在数字的记录和传播过程中,人们往往需要依靠猜测来确定数字所表达的实际大小。首先,根据上下文的语意确定数字所描述的对象,然后结合当时的人口和经济规模推测出一个合理的数值。假如图5-2中的符号代表了这一时期巴比伦城邦三年内的赋税收入,那么它更有可能代表216316,而非3916。
为了避免这些麻烦,聪明的巴比伦人想到了一个好办法,他们把两个数字隔开一些距离,以表示这两个数字之间还有一个位置没有数字。但即便这样,数字的表达仍然相当混乱。隔开多少距离算是隔开?隔开多少距离算是隔一个位置,多少距离又算是隔两个位置?如果查看泥板的人视力不佳,他有可能会把216316当成3916。
究其原因,古巴比伦的计数系统中没有“0”这个数字,当时的数学家还无法接受“0”作为一个有效的概念。
同时期的古埃及人做出了有益的尝试,他们使用以10为基底的单位制,在每个单位量级上放置相应个数的代表符号来表达具体的数字。图5-3为我们展示了古埃及象形文字中的数字表示方法。
图5-3 古埃及象形文字中的数字表达方法
古埃及人的这套计数方法巧妙地避开了对“空位”的使用,通过在每个单位量级上放置相应数量的代表符号来表达数字。理论上,这套计数系统可以表达任意大的数字,但由于没有像古巴比伦人那样采用进位制,因此操作起来会很麻烦。举一个例子,古埃及象形文字中最大的常用数字单位是1000000,用一个高举双手的小人表示,代表人们意识到如此大的数字时内心十分惊叹。如果你想表达诸如10亿这样的大数字,你就需要将代表1000000这个数字的小人连续画上一千遍,这种方法不仅耗时费力,而且容易出错。当然,这毕竟是一个天文数字,在古埃及时期多半不会用到。相比之下,古罗马人就“悲惨”得多,他们沿用了古埃及人的方法,但当时最大的常用数字单位仅是千,这使得人口普查和大规模军事动员变得极为困难。
当然,罗马人不会真的那么“悲惨”,他们使用的是兵团制,在数不清总人数的情况下采用了化整为零的好办法,在中世纪以后,罗马人也想出了一些能够方便地表示大数字的方法,“数数”的困难也迎刃而解。
在古代中国,我们的祖先用算筹表达数字,他们设计了两套表达数字的方法:一套称为“纵式”;另一套称为“横式”。算等表达数字的方法如图5-4所示。
图5-4 算筹表达数字的方法
古代中国的算筹结合了古巴比伦和古埃及数字的优点,它本质上是一种十进制位置记数法,能清晰地表示每个单位量级上的具体数字。但为什么需要纵、横两套表达数字的方法呢?我举一个例子。
纵式摆法和横式摆法相互交错的目的是区分单位量级,如果你发现算筹的纵式摆法或横式摆法连续出现,这表明在两个数字之间有一个“0”。数字6718用算筹表示如图5-5所示;数字6708用算筹表示如图5-6所示。
图5-5 数字6718用算筹表示
图5-6 数字6708用算筹表示
同样地,这一数字表达方法无法区分连续多个“0”的情况。
古巴比伦、古埃及和古代中国的计数系统确实展现了不同文明的智慧,但在数学上,它们都存在一些明显的缺陷。古印度一位不知名的数学家在公元后的前几个世纪正式引入了“0”这个符号并把它看成一个真正的数字。此后,利用0~9这10个数字构成的十进制位置记数法开始出现并由阿拉伯人传入欧洲
。随着时间的推移,阿拉伯数字及十进制位置记数法逐渐被广泛接受,人们对于数字的书写得到了极大的简化。数字的演进如图5-7所示。如今,30,000,000,000,000,000这样的大数字,我们还有另外一种写法
称为科学记数法,据传也是古印度时期某个佚名数学家发明的。
可以看到,人类为了数字的准确表达展现出多么巨大的创造才能,尽管不太起眼,古代印度人所做的却是一项划时代的伟大发明。
图5-7 数字的演进
位置记数法很重要,但为什么是十进制呢?
十进制脱颖而出要归功于人类的双手有10个手指,用手指来辅助计数是最自然、最便捷的方法。如果人类像章鱼一样进化出8条腕足,那么今天学校里教的大概率就是八进制了。然而,令人感到意外的是,这似乎也是十进制成为主流的唯一原因。在数学上,与其他进制相比,十进制几乎没有优势。
首先,十进制用于书写和计算并不经济,构建十进制位置计数法需要0~9共10个符号。符号数量偏多不仅不利于记忆,也给计算增加了不小的负担。在使用十进制位置记数法表示的数字进行加法和乘法运算时,需要熟悉0~9这10个数字两两相加或两两相乘的运算结果。即便排除那些与“0”有关的简单运算,九九乘法表中需要记忆的算式仍然多达45条(见图5-8)。
图5-8 九九乘法表
得益于中文语言发音上的优势,中国学生年幼时就能熟练背诵九九乘法表。然而,西方国家的基础教育长久以来没有总结出便捷的乘法教学方法,像“9乘8等于多少”这样的简单问题一定要变成
才能安心算出答案。对于西方国家的学生来说,学好十进制加减乘除真不是一件容易的事情。这并不是夸大其词。2015年2月,时任英国首相卡梅伦接受媒体采访时,被“不怀好意”的记者故意提问“9乘8等于多少”,卡梅伦先生当场拒绝回答这个问题,引发了现场一片笑声。
如果换成计算机使用的“二进制”,情况就会好很多,这时需要记忆的数字符号只有“1”和“0”,需要背诵的加法和乘法算式也只有1+1=10和1×1=1。然而,这种代价也是显而易见的,我们需要付出更大的存储空间。例如,十进制中的两位数“15”若是用二进制表达则变成了一个四位数“1111”。这种情况还会随着数字的增大变得更加夸张,为了满足数字记录和运算的需求,人类将会消耗掉难以想象的纸张量。
即使从环保和书写便利的角度放弃“二进制”,我们仍有看起来更好的选择,可以选择只有一个真因子的素数进制(如五进制、七进制),也可以选择有更多真因子的合数进制(如十二进制、十六进制或六十进制)。选择素数进制是从数学角度考虑的,此时对每个小数,我们都能够快速找到与之相对应的最简分数。例如,小数0.64在七进制中代表了
这是一个最简分数。同样的要求十进制则做不到,0.64在十进制中的代表是64/100,依然有化简的可能,可以化简成32/50或16/25。
选择拥有较多真因子的合数进制更适合处理实际生活问题,因为这会大大提高分配和兑换的便利性。在很多度量衡中,人们曾经使用10以外的其他数字作为基底。例如,“一打啤酒”指的是12瓶啤酒;古代中国曾采用的一种单位制,其中,一斤不是十两,而是十六两,所以“半斤八两”表示两者重量相等。相比之下,“10”只有3个真因子“1”“2”和“5”,既不多又不少,两头不挨着,比较尴尬。
虽然“十进制”有着诸多缺点,但是倘若真的发起一场重新选择进制的全球大投票,“十进制”仍然很可能会笑到最后。这是因为对十进制的使用,人们已经形成巨大的思维惯性,更换进制将是一项耗费巨大成本且收效甚微的工程。
你能举一个在实际生活中因为进制不统一而引起麻烦的例子吗?