倡导“4位数分隔法”?专家称与祖先智慧无关,也谈不上与国际接轨
刻有数字的殷墟甲骨
撰文 | 刘 钝(清华大学科学史系/中国科学院自然科学史研究所)
责编 | 叶水送
近来,国内有专家撰文倡导书写阿拉伯数字时采用“4位数分隔法”(国际上通行的为3位数分割法),文章由中科院院士领衔署名,发表在权威的国家科研机构发行的内部刊物上,又被一些知名的博主和公众号转载推介,具有一定的影响。
但笔者以为不宜推行这种方法,主要有两方面理由:
首先是没有历史依据。文章称中文表达大数每四位升一级,是“祖先的智慧结晶”,今日推行可以“让人们进一步认识到汉字的博大精深,领会到古人在汉语数字设计中的智慧”,这是不符合事实的。
如同其他古代早期文明一样,中国人对大数的认识是逐步发展的,甲骨文中最大的数词是“万”,虽然出现了“兆”、“京”等字,但不作数词。先秦文献中“亿”“兆”并见,但都表示“很多”而无固定的对应量级(后世儒生的注疏别论)。
南北朝董泉所撰《三等数》,应是系统介绍大数记法的书,可惜早已亡佚。从唐代学官把它与北周甄鸾《数术记遗》并列为辅助读物来看,其内容恐与《数术记遗》有相似之处,而后书中介绍的三等数,正是万以上的大数记法,原文为:
公元400年前后成书的《孙子算经》“大数之法”一节从亿到载都从万万进,相当于上述中等记数法;而“量之所起”一节从亿到载都从十进,相当于上述下等记数法。敦煌文献中有两种唐代算经也涉及大数记法:其中编号为P.3349、S.0019和S.5779的三种写经实为同一部书,介绍的是中等记数法,不同的是“载”后还有一个单位“极”(万万载曰极);编号为S.0930的一种介绍的是下等记数法。
唐代所译佛经中又出现了许多印度数名(数词),例如实叉难陀所译《大方广佛华严经》在“万”后面就提到124个数名,第一个“洛叉”等于10万,第二个“俱胝”等于1000万,从“俱胝”开始皆按“数穷则变”的上等记数法进位,如“俱胝”个“俱胝”等于1个“阿庾多”(100万亿)。佛经所译数名大多佶屈聱牙,其中有些也被中国采用。明代《算法统宗》在“载”之后,就还有“极”“恒河沙”“阿僧祗”“那由他”“不可思议”“无量数”等大数单位,大多来自佛经。
以上所述三等记数法中,下等无需分隔,上等无法(等距)分隔,唯有“故其传业”的中等数以万万进位;如果要以逗号来分隔而又符合中国古代传统,那就得采用“8位分隔法”而不是“4位分隔法”。
数学史上确实有采用四位升级(万进)大数记法的,但不是在中国而是在日本,时间则相当晚近,影响也甚为有限。
吉田光由《新编尘劫记》
1627年,和算家吉田光由在以《算法统宗》为蓝本编写的《尘劫记》中,介绍了中国算书中的大数记法,“万”至“极”皆以十进,“极”以上相邻两个单位皆为万进;1634年《新编尘劫记》(四卷小型本)中则统一改成万进。不过江户时代的和算家并没有普遍接受吉田光由的意见,特别是那些被称为“中国流”的和算家建部贤弘、会田安明等人,仍然使用万万进位的大数记法。(藤原松三郎《日本数学史要》)今日日本、韩国、新加坡、中国台湾等汉字文化圈地区在某些特定领域使用万进的“兆”“京”等单位,应该说是《新编尘劫记》的遗孽;如果说采用“4位数分隔法”体现对传统的继承,那么继承的是17世纪和算家吉田光由开创的传统。
第二个反对的理由是会造成混乱。文章称“按英文阅读习惯读数较快得益于每3位阿拉伯数字用逗号分隔的表达形式”,引入4位分隔法“对中国人和外国人用中文识读数字都更容易”;又说为了避免两种分隔法混淆,可以把分隔号置于阿拉伯数字的右上角,“这样的新旧表达方式的区别特征更明显,互不干扰,便于中、英两种分隔法在国内同时出现。”以上第一句话没错,后面的意见则不敢苟同。
实际上,不只是英文,欧洲其他主要语言中都有“千”、“百万”、“十亿”、“万亿”等千进位的数词专名,现在通行的“3位数分隔法”,正是西方人为了辨识和诵读大数而创造出来的一种辅助手段,既行之有效又被广泛接受使用。如今另搞一套,不但缺乏依据,也易造成混乱,实在是得不偿失。
此外,许多物理单位也是根据千进原则划分量级的,如重量单位的纳克(ng)、微克(μg)、毫克(mg)、克(g)、千克(kg)、吨(t),长度单位的纳米(nm)、微米(μm)、毫米(mm)、米(m)、千米(km)等。计算机信息技术中用于表达存储容量的计量单位则按准千进原则划分,其基本字节(Byte)是一个8位元组,向上依次就有KB(1024 Byte)、MB(1024 KB)、GB(1024 MB)、TB(1024 GB)、PB(1024 TB)、EB(1024 PB)、ZB(1024 EB)、YB(1024 ZB)等。
为了表达很大(或很小)的数目,近世则普遍采用以指数来显示量级的科学记数法,如阿伏伽德罗常数6.02214×10^23,表示1摩尔物质所含的分子(或原子)数目是一个24位的数字。上述存储容量单位YB相当于1024的8次方个字节,用科学计数法表达约为1.2089×10^24 Byte。阿基米德在《数沙者》中设想的一个有限球体宇宙中所能容纳的沙子总数大约为1×10^63粒。应用科学记数法既不需要大(小)数专名,也无须借助分隔数位来判断量级。
总之,“4位数分隔法”与我们祖先的智慧无关,也谈不上与国际接轨,应用起来只能徒生混乱,还是不要提倡为好。
附: 传承祖先的智慧,倡导中文中阿拉伯数字书写方式采用“4位数分隔法” 成会明、田果成、戴宏(中国科学院金属研究所) 我们发现在阅读中存在这样一个现象:在面对一串较长的阿拉伯数字时,要读出这个数字,按中文的书写方式来读,我们的反应似乎比用英语等语种的书写方式要慢一些。 表1 部分数字中、英文对照表 图1 中文“4位数分隔法”或“万位分隔法”中部分数字每4位对应的单位 通过数字分隔的表达方式,阅读一个数字只需知道英文等语种中的3位数或中文中的4位数的数字单位如何读或写和相关单位的名称即可。例如,英文里数字写成987,654,321,很容易读为987 million 654 thousand (and) 321;中文里写成9,8765,4321,很容易读为9亿8765万4321。 ......(中间略去三段文字) 按“4位数分隔法”改变中文中阿拉伯数字书写方式具有以下现实意义: 能够丰富和完善汉字的表达形式; 易懂,易记; 让人们对数字大小一目了然,提高阅读速度; 让人们进一步认识到汉字的博大精深,领会到古人在汉语数字设计中的智慧; 教会儿童便捷的识数方法,提高他们对数字的认知和感觉; 与国际化接轨,推广这种表达方式,既能促进中国人对“3位数分隔法”的理解,又能让学中文的外国人更快地掌握中文的数字表达。
比如,对数字1,234,567,890,按英文阅读习惯通过识别“3位数分隔”,一下就能看出这个数的最高位是“十亿”(billion)。而按照中文的阅读习惯,通常就得按“个、十、百、千、万……”从右往左数下去,才能数出这个数的最高位是“十亿”。
按英文阅读习惯读数较快得益于每3位阿拉伯数字用逗号分隔的表达形式。“3位数分隔法”与其语言的发明有内在的逻辑关系,在英语中每3位数的升级单位是千(thousand)、百万(million)、十亿(billion)、兆(trillion)等。这种表达形式能让使用英文的 人无需从低位向高位数位,就能快速看出这个数字的最高位是多大的数,从而直接从最高位开始把这个数读出来。
但按中文阅读习惯则很难做到——从小我们学到的读数方法是:先从右至左,从最低位往上数位,然后再读出这个数。我们的读数方法让人感觉有些“难”的原因主要在于数字间缺少按照“万”为单位的分隔符。
其实,我们祖先的智慧同样高明,在创造大数字表达时也是有节奏的。在数字表达上英文是每3位数升一个级,中文是每4位数升一个级。我们祖先创造出表达数字的汉字是“个、十、百、千、万、十万、百万、千万、亿、十亿、百亿、千亿、兆、十兆、百兆、千兆、京、十京、百京、千京、垓、十垓、百垓……”
其实,这里面本身就存在一种分隔法,即“4位数分隔法”或“万位分隔法”。遗憾的是,在近代我国引进阿拉伯数字时,没有重视英文等语种中“3位数分隔法”与中文表达的错位现象,忽略了我们祖先的智慧,对祖先的智慧结晶没有很好地加以利用并发扬光大。
例如,数字1234567890,按英文中阿拉伯数字书写方式为1,234,567,890,参照表1 我们能一目了然地看出最高位是“1billion”,并可立即读出:“1 billion 234 million 567 thousand(and)890”;而按中文阅读习惯,面对这一较长的数字,通常我们很难立即判断出最高位。
因此,笔者建议,借鉴古人在中文表达中数字的4位升级表达方式,明确中文中阿拉伯数字的书写方式采用“4位数分隔法”或“ 万位分隔法”( 图1)。例如, 把数字1234567890 表达为12,3456,7890,我们就能一目了然地看出最高位是“10亿”,可以立即读出:12亿3456万7890。
中文中数字的“4位数分隔法”与国际化接轨也比较便捷,因为“3位数分隔”与“4位数分隔”很容易识别。
制版编辑 | Morgan