【何新读史杂记】
何新:中国古代计数中0概念的最初引进
1
中国古代数学有两大缺陷,一是自然数系列中没有零的概念,二是缺乏系统严密的纯几何学研究(即西学之欧几里得公理体系)。
中国人很早就发明了以十进位的计数系统,但同时也有以二,以五,以八或十六进位的系统并行。
在唐代以前,中国古代自然数计数始于1,计数的起始点是一而非零。
——例如中国人计算人岁数的传统算法,至今仍是如此,第一年并不是从零开始,而是出生之日就算一岁。所以除夕出生的婴儿,大年初一就已经算(虚)两岁了。这种计“虚岁”的古老方法,现代人已很难理解,其实正是反映了早期整数无零观念的算法。
这种以一为开始数的计数方法,在“0”被发明之前曾经普遍存在,例如西方的罗马数字系统也始终没有0。
如果以数轴表示数,这种无0概念的计算方式,在数轴上,就是“以线段代替点”,即计数从线段1开始,而非以原点0为开始。这种意义的数轴上面没有0的概念。
罗马计数系统也没有0概念。以耶稣生年为开始年的公元纪年系统,乃东罗马人所创制,此系统没有公元0年,而“公元1年”的前一年,不是公元零年,而直接是“公元前之第一年”,即隔过0位而为负数1。
2
商代计算已经采用了十进位的位值制。商代的甲骨文中,发现有数字“六五十又九”,即数字六五九——659,以自右向左的书写表示进位,使用以十进位。
但是尽管如此,中国算术中却很长时期并没有零的符号或者以0作为数字的概念。这一点近人已从出土汉简中的算法得到确认。(可参看《汉简无零》:https://baijiahao.baidu.com/s?id=1574353011133204&wfr=spider&for=pc)
在发明零符号以前,不便于进行笔算,古代计算只能以筹算。而筹算中遇到10的进位,则以空位表示以10的进位。例如在筹算中,609即表示为(六)(空位)(九)。这种空格是表示逢十进位而不是数字概念的0。
据李约瑟说,柬埔寨出土公元7世纪(683年)的碑文,碑文中使用“点”来表示“0”,这是世界数学史上零概念以符号形式的最早出现。
在中国,概念0的出现是在唐代,大约7世纪前后。唐开元年间,来华的天竺高僧瞿昙悉达在他编纂的《开元占经》一书中,出现了关于概念“0”的占位法。据《开元占经》“天竺九执历经”开篇即介绍天竺算字法的以0进位法说:
“算字法(样):
一字口、二字口、三字口、四字口、五字口、六字口、七字口、八字口、九字口、点口”。
【附注:式中口是缺字,应为印度数字。】
何按,此所谓天竺的“算字法样”,实际即印度数字或阿拉伯数字表示之:
1、2、3、4、5、6、7、8、9、0
故《九执经》又云:
“右天竺算法,用上件九个字,乘除其字,皆一举礼而成。凡数至十,进入前位,每空位处,恒安一点,有间咸记,无由辄错,运算便眼,趁须先及历度。”
也就是说,凡逢十倍之进位,则在前一数位上以点为标记,例如:
六十60标记为六、,六百600标记为六、、,六千6000标记为六、、、等。
也就是说,在九执经的算法中,可以用“·”这个符号来明确地表示数字0的概念。
这是中国数学明确引入0为计数概念系统的初次记录。
3
九执历是来自西域的历法。《新唐书》云出自西域,但又说出自天竺,表明此天竺非恒河南印度而当为印度河地区的印度,即西域印度。
唐代瞿昙家族乃是出自西域印度的天文世家。广德二年(764年),杨景风注不空所译之《宿矅经》时提到:“今有迦叶氏、瞿昙氏、拘摩罗氏等三家天竺历并掌在太史阁,然今之用,多用瞿昙氏历,与大术相参供奉耳。”可见瞿昙家族在天竺三家天文学中一枝独秀,影响久远。
自初唐以下,瞿昙罗和瞿昙悉达先后担任太史令,即官方天文机构的最高长官。瞿昙家庭在武则天、中宗、睿宗等数朝天文机构皆任高官。著名的唐代高僧、天文学家一行法师也是出自瞿昙悉达门下。
4
关于九执历,《四库全书总目提要》考订云:
出《开元占经》。“唐瞿昙悉达撰。卷首标衔,悉达曾官太史监事。考《玉海》开元六年诏瞿昙悉达译《九执历》,则悉达之为太史监,当在开元初。卷首又标奉敕撰,而奉敕与成书年月皆无可考,惟其中载历代历法止于唐《麟德历》,且云李淳风见行《麟德历》。考唐一行以开元九年奉诏创《大衍历》,以开元十六年颁之,其时《麟德历》遂不行,此书仍云见行《麟德历》,知其成于开元十六年以前矣。”
又云:“其中卷一百四、一百五全载麟德、九执二历。《九执历》不载于《唐志》,他书亦不过标撮大旨。此书所载,全法具著,为近世推步家所不及窥。”
5
九执,其名诡异,自古未解。其实执者,值也,值日守时之意义。
《大日经疏》云:“诸执者,执有九种,即日、月、水、火、木、金、土七曜及罗睺、计都,合为九执。”
“民间又称九曜。罗睺是交会食神。计都正翻为旗,旗星谓彗星也。除此二执之外。其余七曜相次值日,其性类亦有善恶。”
[罗睺,梵语,阿修罗,暗障,隐秘者之义,食日月,主流星,相当于中国所言太阴,太岁。计都,即彗星。]
其源出西域之梵历,梵历多种在唐初年间已传入我国。《九执历》由太史监翟昙悉达在开元六年译出,传授于徒弟一行等人。
翟昙悉达云:
“臣等谨案,《九执历》法,梵天所造,五通仙人承习传授,肇自上古。”“臣等谨凭天旨,专精钻仰,凡在隐秘,咸得解通,今削除繁冗,开明法要,修仍旧贯,缉缀新经,备列算术。”
6
唐开元九年,由于麟德历(李淳风所制订)日食不验,皇帝命由僧一行禅师主持编制新历法,作大衍历。
一行参考九执历,采用了九执的某些算法及内容。但是唐书说,一行禅师做了很大的保留,并没有完全采纳九执历的方法。开元十五年,大衍历制成。十月,一行禅师病逝。
开元十七年,新历颁行。但是由于一行没有邀请翟昙悉达参与编制大衍历,因此引起他的不满:
“时善算瞿坛譔者,怨不得预改历事,二十一年,与(陈)玄景奏:“《大衍》写《九执历》,其术未尽。”、太子右司御率南宫说亦非之。
诏侍御史李麟、太史令桓执圭较灵台候簿,《大衍》十得七、八,《麟德》才三、四,九执一、二焉。乃罪(南宫)说等,而是否决。”
[陈玄景曾经参与大衍历制定。南宫说,曾经参与神龙历的制定。]
7
玄宗皇帝令人核验之,最后认为还是一行大衍历好。《新唐书》云:
“《九执历》者,出于西域。开元六年,诏太史监瞿坛悉达译之。断取近距,以开元二年二月朔为历首。度法六十。月有二十九日,余七百三分日之三百七十三。历首有朔虚分百二十六。周天三百六十度,无余分。日去没分九百分度之十三。二月为时,六时为岁。三十度为相,十二相而周天。望前曰白博义;望后曰黑博义。其算皆以字书,不用筹策。其术繁碎,或幸而中,不可以为法。名数诡异,初莫之辩也。陈玄景等持以惑当时,谓一行写其术未尽,妄矣。”
但是九执历引入0的概念,圆周为360度的概念,以及运用三角函数的解析方法,这些都是来自西域数学的新概念,对唐宋以后的中国数学及天文历算影响颇深远。