从度量衡单位看初唐算法文化的多样性
2019-05-15朱一文
朱一文
(中山大学哲学系暨逻辑与认知研究所,广州 510275)
1 前 言
1.1 问题的提出
在今天的数学中,不带度量衡单位的数与带单位的数具有截然不同的含义——前者是数学研究的对象之一,代表着某种程度的抽象;后者则往往与具体的应用相联系。两者分野的关键在于是否带单位。这也体现在对于带单位的数的计算之中——其核心思想是统一单位、再分离处理单位和数。大致而言可以分作如下几步:(1) 把不同的量换算成同一单位;(2) 抽离单位,进行纯数字计算,得到数字结果;(3) 对单位进行处理,得到单位结果;(4)数字结果加上单位结果得到最终的结果。例如3米×3千米=3米×3000米=9000平方米。就此而言,单位在今天的数学实作中并未处于重要的位置。那么,这样一种与“不带单位—带单位”“抽象—具体”有关的数学思想,在漫长的历史中是否始终如一?如果不是,它是如何形成的?
简而言之,这种数学思想当然是在漫长历史中形成的。通过一些学者的研究,我们知道古埃及数学采用的是非位值制的十进制数字系统,有专门的单位换算表进行计算([1],页11—34);古巴比伦数学采用位值制的六十进制数字系统,它本身就从度量衡单位演变而来([2],页75—83; [3])。由此可见,在最古老的两大古数学文明中,度量衡单位已经起到了超过其在今天数学中所起的作用。
相对而言,我们对于中国古代数学中度量衡单位与数学实作的关系还了解不多。中国古代依靠算筹表达数字进行计算,这样产生了两种情况:算筹数字是抽象的不带单位的数,或者它们是单位为“筭”的数[注]传统数学文献如《九章筭术》支持第一种情况,而正史中的历法文献则支持第二种情况。。这样在计算中,或者是先剥离数量的单位,或者是先统一转换成“筭”,得到数字结果后再配上和转换回所求之单位[注]这里的说法是以汉唐筹算为中心。在此之前之后,各有不同情况。[4]。然而,近来林力娜和马彪的研究表明,在简牍中的单位换算实际帮助和参与了数字计算[5]。笔者近年来的系列研究则表明儒家经典中有未被前人所研究的数学文献,而其所反映的数学实作揭示出儒家对数的理解不同于筹算体系[6—10]。这些研究都说明本文所关心的议题仍有进一步研究的空间。
因此,本文的思路是先通过分析儒家经典中的相关数学文献,揭示出不为学界所知的儒家对于度量衡单位的一种计算用法,进而与筹算的做法相比较。由此,丰富和增进我们对于中国古代有关数学思想的认识,深化对于数学史的理解。
1.2 文献及其历史语境
本文分析的核心文献是贾公彦对《仪礼》丧礼饮粥制度“朝一溢米,夕一溢米”及其郑玄(127—200)注的疏解。贾氏是初唐经学家,生卒年不详,尤善三礼之学[注]三礼之学,指关于《礼记》《周礼》《仪礼》的学问。,留存至今的著作有《周礼注疏》[11]和《礼仪注疏》[12]两部[注]据《旧唐书》,贾公彦于永徽年间(650—655年)官至太学博士([13],页4950);而《周礼注疏》和《礼仪注疏》贾氏的官名都是太学博士,由此大致可以推测两书完成于650—655年之间。。在该段注疏中,贾氏的计算对度量衡单位的运用极具特色,为其他文献所罕见。此外,在初唐大儒孔颖达(574—648)领衔注疏的《礼记》《春秋左传》中,也有对丧礼饮粥制度的解释。一方面,在孔氏等对《礼记》的注疏中,其解释与计算接近贾氏的注疏[注]实际上,贾公彦也在孔颖达的领导下参与了对《礼记》的注疏([14],页1433)。由此,此处《礼记》注疏可以理解为贾氏的做法。;另一方面,在孔氏等对《春秋左传》的注疏中,他们采取了与贾氏不同的计算与解释。据此,本文可以呈现出儒家内部对度量衡单位的不同运用。
同时,由于北周甄鸾所撰的《五经算术》[注]《五经算术》是初唐十部算经之一,该书共38问,其中甄鸾用筹算方法解决儒家经典中的数学问题,李淳风等又为之注释。也收录了“朝一溢米,夕一溢米”问题,初唐算家李淳风(602—670)等对之注释,本文亦将对之进行分析,以显示算家在计算中对度量衡单位的运用又不同于儒家。
尤其值得注意的是,贾公彦、孔颖达、李淳风等人对于丧礼“朝一溢米,夕一溢米”的不同注解,实际同时发生在初唐繁盛的注经活动中,而且三人互相认识。在儒家经典方面,孔颖达和长孙无忌领衔诸儒注疏“五经”[注]指《周易》《尚书》《毛诗》《礼记》和《春秋左传》五部儒家经典。对此的专门研究,可参见文献[15]。,并于永徽四年(653年)完成;此外,还有贾公彦、徐彦、杨士勋等人对经典的独立注解。在算家经典方面,李淳风等人[注]与李淳风一同注释算经的是算学博士梁述和太学助教王真儒。唐代十部算经指《周髀算经》《九章算术》《海岛算经》《张丘建算经》《孙子算经》《夏侯阳算经》《五经算术》《无草算经》《辑古算经》和《缀术》。后来《缀术》遗失,宋人便把《数术记遗》补入,便成为我们今天看到的《算经十书》。在显庆元年(656年)完成了对于十部算经的注释([13],页2719),《五经算术》位列其中。因此,诸家所反映的与度量衡单位计算有关的数学思想与实作,实际折射出初唐算法文化的多样性。
2 儒家与算家:诸家对丧礼饮粥制度的注解
2.1 《仪礼》与郑玄注
《仪礼·丧服》曰:
饮粥,朝一溢米,夕一溢米。([12],页1097)
这是讲在丧礼中一个人每天早晚只能各饮一溢米的粥。郑玄《仪礼》注:
二十两曰溢,为米一升二十四分升之一。([12],页1097)
郑玄《礼记·丧大记》注则云:
二十两曰溢,于粟米之法,一溢为米一升二十四升之一。([16],页1576)
粟米之法载于《九章算术》,可以用来计算各种谷物的比率,以及容积和体积的计算。郑玄据此指出:溢是重量单位,1溢=20两;进而转换算成容积相当于1升1/24升。郑玄注不仅没有给出这一换算的具体计算过程,而且实际留下了一个隐藏的数学问题,使得之后的学者得以在其中发挥和探讨数学。
其实,郑玄断定溢为重量单位可能是不正确的。根据今人的研究,溢在先秦有时为重量单位,有时为容量单位([17],页34—35,页139—142)。然而,郑玄注的关键在于将数学引入对儒家经典的注释中。东汉末年,经学章句繁多;郑玄博览群经,兼习众说,融合古今文说,完成经学的统一([18],页160—161)。曾在马融(79—166)门下的郑玄与马融一样,擅长利用数学来注解经典,由此形成了独特的风气。郑玄注《周礼》“氏为量”也引《九章算术》“粟米法”([11],页917),他又引郑众注给出了《周礼》六艺之一的“九数”名目,由此与《九章算术》相联系([11],页731)。钱宝琮认为“《九章算术》与许慎《说文解字》相仿,是东汉初年儒学的一部分,与儒家的传统思想有密切关系。”([19],页688)实际上,将数学与经典相联系,是马郑等人形成的风气,在他们的注释中隐含的数学问题引发了后世儒家与算家的持续探讨。本文将依次分析贾公彦、孔颖达、甄鸾、李淳风等的相关注解,揭示诸家计算中对度量衡单位的不同用法。
2.2 贾公彦注疏
贾公彦《仪礼》注疏云:
云“二十两曰溢,为米一升二十四分升之一”者,依筭法,百二十斤曰石,则是一斛。若然,则十二斤为一斗。取十斤分之,升得一斤,余二斤。斤为十六两,二斤为三十二两。升取三十两,十升,升得三两。添前一斤十六两,为十九两,余二两。两为二十四铢,二两为四十八铢。取四十铢,十升,升得四铢,余八铢。一铢为十絫,八铢为八十絫。十升,升得八絫。添前则是一升得十九两四铢八絫。于二十两仍少十九铢二絫。([12],页1098)
此处贾氏从120斤=1石(重量),相当于1斛(容积)出发[注]对于体积容积的换算关系,林力娜和马彪有很好的研究。参见文献[20]。。因1斛=10斗=100升,于是12斤相当于1斗,即10升。于是,1斤相当于1升,余下2斤(无法被10升整除)。因1斤=16两,2斤=32两。于是,3两相当于1升(加上前面1斤得到19两),又余下2两(无法被10升整除)。又因1两=24铢,2两=48铢。于是,4铢相当于1升,又余下8铢(无法被10升整除)。又因1铢=10絫,8铢=80絫。这恰好可以被10升整除,得到8絫相当于1升。于是得到19两4铢8絫相当于1升,见表1。
表1 贾公彦19两4铢8絫~1升的计算过程
于是贾氏得到19两4铢8絫~1升,因为需要注疏的是20两~1升1/24升,所以贾氏继续注疏云:
则别取一升,破为十九两四铢八絫。分十两,两为二十四铢,则为二百四十铢。又分九两,两为二十四铢,则九两者二百一十六铢。并四铢八絫,添前四百六十铢八絫。总为二十四分。直取二百四十铢,余二百二十铢八絫在。又取二百一十六铢,二十四分,分得九铢。添前分得十九铢。有四铢八絫。四铢,铢为十絫,总为四十絫。通八絫为四十八絫。二十四分,分得二絫。是一升为二十四分。([12],页1098)
此段中贾氏又另取1升,对应于19两4铢8絫。依据1两=24铢,19两4铢8絫=460铢8絫。又460铢8絫=240铢+216铢+48絫,于是它的1/24为10铢+9铢+2絫=19铢2絫,相当于1/24升,即19铢2絫~1/24升。
贾氏继云:
分得十九铢,添前四铢为二十三铢。将二絫添前八絫,则为十絫,则十絫为一铢。以此一铢添前二十三铢,则为二十四铢,为一两。一两添十九两,总二十两曰溢。([12],页1098)
把19铢2絫(~1/24升)加上19两4铢8絫(~1升),就得到20两~1升1/24升。贾氏便完成了注疏。总之,贾氏的思路和方法可以总结为:从1石~1斛出发,先求出1升相当于多少重的米;而后二十四分之,求得1/24升相当于的米重量。把两者相加便得到20两~1升1/24升。在《仪礼·既夕礼》中,贾公彦也有一处有类似的注疏,方法思路大致相同,不再赘述([12],页1161—1162)。
观赏者沿肥城路自西向东行走,金城银行率先进入视野,建筑顶部设计的仿欧洲古典市政厅式钟楼成为正对对景.因银行所处地势较低,所以高耸的钟楼并不会使人感觉突兀.此时,由于肥城路经过河南路后向西北偏折,导致观赏者视线受阻,从而令圣弥厄尔教堂巧妙地“隐藏”到了后面.当观赏者继续东行,转过河南路路口,视野才豁然开朗,教堂建筑出现在视线尽端(图7).在此过程中,城市道路通过方向的变化起到隔景的效果,可谓一步一景,吸引着人们不断前行,这也是西特“连续对景”理念的典型表现.
2.3 孔颖达等注疏
孔颖达等在《礼记·丧大记》注疏同样的内容,云:
云“一溢为米一升二十四分升之一”者,案《律历志》:黄锺之律,其实一龠。《律历志》:合龠为合。则二十四铢合,重一两。十合为一升,升重十两。二十两则米二升。与此不同者,但古秤有二法。([16],页1576)
孔氏先指出《律历志》[注]根据内容,此《律历志》应为《汉书·律历志》。中有另一套度量衡系统。1两=24铢(重量)~1合=1/10升(容积),因此1溢=20两~2升,与郑玄给处的数值(1升1/24升)不同。但“古秤有二法”,因此:
说《左传》者云:“百二十斤为石”,则一斗十二斤,为两则一百九十二两。则一升为十九两有奇。今一两为二十四铢,则二十两为四百八十铢。计一十九两有奇为一升,则总有四百六十铢八絫。以成四百八十铢,唯有十九铢二絫在。是为米一升二十四分升之一。此大略而言之。([16],页1576)
孔氏等这里给了非常简略的解释,即所谓“大略而言之”。从1石=120斤~10斗,得到12斤=192两~1斗=10升。于是19两有奇~1升[注]根据贾公彦注疏,此19两有奇应为19两4铢8絫。。此19两有奇=460铢8絫(没有给处计算过程),与20两(480铢)相比,正好少19铢2絫(相当于1/24升)。于是19两有奇+19铢2絫=20两~1升1/24升。由此可见,孔氏此处的计算基本与贾氏相同。
有趣的是,孔氏等在《春秋左传正义》中,注疏同样的内容,给出了详细地计算过程:
孔氏等也从1斛=10斗~120斤,得到12斤=192两~1斗=10升。接着,孔氏等为了便于计算引入新的单位“分”(10分=1两),于是19两2分~1升。19两2分比20两少8分。孔氏等再取1升,对应19两2分=192分。则1/24升对应8分(192÷24=8)。这样,20两(19两2分+8分)~1升1/24升。具体细节见表2。
表2 孔颖达等的计算过程
孔颖达等的两处注疏,《礼记》中的较为粗略,大概与贾公彦在《仪礼》中的算法类似。《春秋左传》中,孔氏等为了使得计算简便,引入新的重量单位“分”,1两=10分。这样使得孔氏等跳过了1两=24铢,从而避免了反复转换单位直到是10的倍数的过程(见表1)。贾疏和孔疏相同之处在于,两者对于郑玄给出的20两~1升1/24升,都是分作两段注疏,即分别注1升和1/24升。
2.4 甄鸾、李淳风等注释
此问也恰好被收入《五经算术》,甄鸾、李淳风等分别有注释,让我们看看他们是怎么做的:
丧服制食米溢数法:
“朝一溢米,夕一溢米。”注云:“二十两曰溢,一溢为米一升、二十四分升之一。”
甄鸾按:一溢米一升二十四分升之一法:置一斛米,重一百二十斤,以十六乘之,为积一千九百二十两。以溢法二十两除之,得九十六溢为法。以米一斛为百升为实。实如法,得一升。不尽四升,与法俱再半之,名曰二十四分升之一。称法,三十斤曰钧,四钧曰石,石有一百二十斤也。所以名斛为石者,以其一斛米重一百二十斤故也。
臣淳风等谨按:其问宜云:《丧服》朝一溢米,夕一溢米,郑注云:“二十两曰溢,为米一升二十四分升之一。”欲求其指如何。术曰:置一斛升数为实。又置一斛米重斤数,以斤法十六两乘之,所得,以溢法二十除之,为法。实如法得一升。不尽者与法俱再半之,即得分也。([22],页342)
甄鸾由1斛=100升~120斤=1920两,把1920除以20得到96(称为溢法),即1920两=96溢,于是100升~96溢。把100除以96便得到,1溢~1升1/24升。
李淳风对于甄鸾的算法进行了抽象化的描述。“置一斛升数为实”,就是把100升作为被除数。“又置一斛米重斤数,以斤法十六两乘之,所得,以溢法二十除之,为法。”就是120×16÷20=96(溢)作为除数。两者相除便得到结果。甄注、李注运用了数学术语表明他们有一个在文本之外的筹算过程。
3 结语
3.1 诸家计算中对度量衡单位运用之差别
通过上述例子可见诸家对于度量衡单位运用之不同。由于这些不同之处事实上也反映在其他儒学经典和算学经典中,因此可以说具有一般性[注]在贾公彦的其它注疏中,在孔颖达等注释的《五经》中,在李淳风等注释的其它算经中,都有本文所反映出的类似特色。。故而,贾公彦、孔颖达等注疏和甄鸾、李淳风等注释之间的明显差别反映了儒家与算家的差别。前两者注疏的思路是把1升1/24升分开计算对应的重量,而后相加,这样便涉及到12斤÷10升的问题;后两者的思路是把1升1/24升作为一个整体,直接通过计算容量、重量的换算(1920两=96溢~100升),由除法得到结果。在两种不同的思路之下,贾氏与孔氏就涉及到了如何通过换算度量衡单位使得12斤可以被10升整除的问题;而甄氏与李氏的重点是从120斤相当于100升出发,把度量衡单位“斤”换成所求之单位“溢”(1斤=16两,1溢=20两),进而利用筹算。因此,在儒家算法传统中度量衡单位的转换对计算过程起了决定性作用,而在算家算法传统中则只是起数量转换的作用。
贾公彦注疏与孔颖达等《春秋左传》注疏的差别则说明在儒家内部对于度量衡单位的运用也有差别。贾氏的做法,实际上是在“1斤=16两,1两=24铢,1铢=10絫”的度量衡体系下,逐步把12斤被10升除的余量转化为度量衡单位更好的量,直到最终的余量可以被10升整除。这样一个过程中,度量衡单位的转换起了至关重要的作用。而在求1/24升对应重量的过程中,则也是利用单位转化得到24的倍数(即240铢+216铢+48絫),从而计算。孔颖达等在《礼记》中首先指出《汉书·律历志》有另一套计量系统,与郑玄所云不同。接着按郑玄注,给出的简略计算过程,大致可以视作贾氏算法的简化版,考虑到贾公彦也是注疏《礼记》的团队成员之一,这或许说明他在此注疏中起了实作的作用。然而,在《春秋左传》中,孔颖达等给出了新的处理方法。因为涉及到192两(=12斤)被10升除的问题,不再把“两”化为更小的铢、絫等单位以求整除,而是直接引入一个新的重量单位“分”(1两=10分),使得192两可以直接被10升整除(结果为19两2分)。因此,新引入的单位直接简化了计算了过程[注]孔氏的这一做法,实际在唐代算书中也有来源,符合学界对于唐代简化计算方法的一般论断。参见文献[23]。。继而求192分的1/24,得8分,与前相加便得到结果。
3.2 从度量衡单位看中国古代数学实作的多样性
从本文的例子中,我们可以看出在儒家算法中,度量衡单位与计算有一种前所未见的密切联系,其数学思想的本质是利用度量衡单位之间的不同进制转换来简化计算。从世界数学史的角度看,这一思想与古巴比伦数学中六十进制与度量衡单位紧密关系所反映出的思想接近。故孔颖达认为度量衡之间的转换也是算法[注]孔颖达云:“案筭法,十黍为參,是參为铢,二十四铢为两,八两为锱。”([16],页1461)。同时,对算家而言,度量衡单位在计算中的重要性虽不如儒家,但也并非无关紧要。如《孙子算经》《夏侯阳算经》等著作开头便陈述度量衡制度。因此,从度量衡单位的不同使用可以看出中国古代算法文化的多样性。
事实上,除了对度量衡运用不同之外,在本文所分析的例子中还呈现出其它差别:(1) 注疏和算法的结构,即贾注、孔注是依据把1升1/24升分开理解,从而逐步注解的方式,而甄注、李注则是采用依据传统数学重构文本的方式给予注释。(2) 对数的理解,即贾注、孔注把1升1/24升理解成1升、1份和1升分为24份三部分,而甄注、李注则将其理解为一个整体,通过除法直接得到。(3) 计算工具和推理方式,即无疑甄注、李注的计算是依靠筹算的,但是贾注、孔注的推理自然、明白易懂,无须依赖算筹。从历史语境的角度可以帮助我们理解上述差异。孔颖达等领衔诸儒正义《五经》,贾公彦早年也参与了《礼记正义》。永徽中,官居太学博士的贾公彦独立注疏了《仪礼》。孔颖达去世之后,诸儒对于五经注疏仍有争议,因此高宗重启对之再注疏的工作[注]此段工作在651年([24],页1405;[25],页7303)—653年([13],页71)之间。。故而,儒家内部算法仍有细微差别。甄鸾、李淳风等注释的目的是把筹算数学运用于儒家经典,自然与贾公彦、孔颖达等注疏更是不同。
本文所分析的贾公彦对《仪礼》的注疏、孔颖达等对《礼记》《春秋左传》的注疏,都不是传统数学文献,但是却展现了利用度量衡单位进制做除法的两种鲜见方法。这表明儒学经典中的数学文献具有独特的研究价值,数学史研究应拓展其史料范围。