中国古代大数系统及启示
2013-03-29李文林
李文林
(中国科学院数学与系统科学研究院,100190)
中国古代很早就有表示大数的名词。《诗经》“丰年”篇有“万亿及秭”之说,“亿”“秭”就是两个大数名。毛苌注进一步解释:“数万至万曰亿,数亿至万曰秭。”就是说:“亿”等于一万万,跟今天最常用的大数“亿”一样;“秭”等于一万亿,应该是由亿逐次(十)进位而得。东汉应劭《风俗通义》在万以上出现亿、兆、经(京)、垓、秭、选、载、极等名,相邻两数皆从十进,即10亿为兆,10兆为京,10京为垓,……依此类推。其中的“亿”,按十进位原则等于十万,与《诗经》毛注有别。而毛注“万万曰亿”的万进法在公元3世纪时被延用到亿以上大数:西晋杜预注《春秋》就规定“万万曰亿,万亿曰兆”;三国吴韦昭注《国语》则称“万万兆曰垓”,是由兆万进为京、京万进为垓而来。因此,至公元3世纪,事实上已存在有十进和万进两种大数记数法。
南北朝时期,我国的大数记法有了进一步的发展,出现了以亿、兆、京、垓、秭、壤、沟、涧、正、载十个字为基础的大数名词系统。这十个大数被称为“十等”,按“等”之间的进位关系又确定有三种大数记数法:下数、中数和上数。下数以十为进,即秦汉以前通用的记法。中数“万万变之”,即万万进,首见于公元4世纪的数学著作《孙子算经》(该书中、下数并提)。上数“数穷则变”,即万万为亿,亿亿为兆,兆兆为京……《数术记遗》①中始载。《数术记遗》总括了上、中、下三种大数记法,并认为“下数浅短,记事则不尽。上数宏廓,世不可用。故其传业,惟以中数尔。”自此至宋元,数学家多沿用中数法。明代程大位的《算法统宗》中有“大数”一节,所述大数记法,仍为万万进中数法,只是在“载”之后又增添了“极”“恒河沙”“阿僧秪”“那由他”“不可思议”“无量数”等六个大数,这些新增名词,显然是从佛经借鉴而来。
为了便于了解中国古代几种主要大数记数法表达大数的功能,与现代科学记数法对照列表如下:
十等: (万), 亿, 兆, 京, 垓, 秭, 壤, 沟, 涧, 正, 载上数: (104) 108 1016 1032 1064 10128 10256 10512 101024 102048 104096中数: (104) 108 1016 1024 1032 1040 1048 1056 1064 1072 1080下数: (104) 105 106 107 108 109 1010 1011 1012 1013 1014万进: (104) 108 1012 1016 1020 1024 1028 1032 1036 1040 1044
在上列不同的系统中,同一个名称表示的大数是不同的。例如“兆”,下数相当于百万,中数就是万万亿了,而在万进制中则为万亿。这似乎易使人产生混乱的感觉(尤其当辞书释意未说明该名词属哪一种大数系统时),其实是相对于不同的进制而言。总体观之,中国古代有着严整有序的大数记数系统,并具有强大的表示大数的功能,仅以上表中的第三等数“京”为例,即使在中数系统中已表示1024,而在上数系统中则已达1032。
综上关于中国古代大数系统之论述,感到对目前大数的定名有以下启示。
一、中国古代大数记数系统是古代文化珍品,当前的大数定名可选择、吸收其优良元素,古为今用。同时也应该认识到,科学计数法毕竟是最简明有效的大数表达工具。无论创造再多的大数名词,面对现代科技、经济和生活中出现的越来越庞大的数字,也总会不敷应用。即便在已有的大数名称中,孤立地拿出一个来,比如“涧”,人们也很难对其大小有具体的概念。在这方面,程大位的看法不无借鉴,他在《算法统宗》中陈列大数名称后指出:“自京垓以后世之罕用,亦不可废,始存之。”
二、关于采用哪一种进位系统的问题,笔者认为可以在中国沿用时间最长的万万进(中数系统)和万进制中选择。由前述可知,万万进的中数系统中,至“京”已能表示达1024量级的大数,而万进系统中同一名称仅表示1016。另一方面,由于清代以来比较普遍地采用了万进系统,人们对其更为熟悉。因此二者各有利弊,可在充分讨论、权衡的基础上择善而从。
三、关于“兆”字的麻烦。无论是选择万万进的中数系统还是万进系统,都将遇到与信息行业中“兆”字定义的冲突。众所周知,随着各种信息产品的流行,作为表示百万的“兆”字已深入千家万户,如果改称“百万”或其他的字,人们会感到很不习惯从而造成某种程度的混乱。但反过来,如果根据“百万为兆”的原则来确定大数名称系统,那么从《诗经》时代以来数千年人们习用的“万万为亿”,就要变成“十万为亿”,十三亿人就要说成一千三百亿人或一百三十兆人,诸如此类,岂不要引起更大的混乱?因此笔者个人以为在目前的情况下,权宜之计是两套系统暂时并存,但逐渐弱化表示百万的“兆”。实际上,信息产品使用的“兆”,实质为字头,而与其并列的其它字头目前均是用外文字头的汉语谐音字来表示之,如“吉”-G(Giga)、“太”-T(Tera),唯独表示百万的Mega使用了中国古代大数名“兆”。逐渐弱化“兆”,突出缩写M,最终以一谐音字来替代,不失为一种过渡方案。
注释
①传本《数术记遗》卷首载:“汉徐岳撰,北周汉中郡守前司棣臣甄鸾注。”钱宝琮考证认为该书实乃甄鸾托名徐岳所作(《中国数学史》,科学出版社,1964)。徐岳,东汉末人,生平无考。甄鸾,生平亦不详,既为北周(557—581)官吏,其活动时代当在公元6世纪。