第七节 筹算算法的发展





  中国古代数学在筹算的基础上取得了极其辉煌的成就。但是,作为主要计算工具的算筹,也还存在不少缺点,特别是使用不便,演算速度和效率不可能很高。例如筹算乘除法,要把算筹摆成上中下三层,演算时要不断拿上拿下,一根根移动,相当麻烦。所以,当时天文学家和数学家乃至财会人员作比较复杂的计算,有时要把算筹摆满一桌子,即所谓“置筹盈案”。可想而知,用四五寸长,二三分宽的小竹棍摆一个十几位的数字,所占的地方就已很可观了。随着农业、手工业和商业的发展,日益需要进行大量繁杂的计算,并且要求算得快和算得准,因此原有计算方法甚至计算工具都越来越不能适应实际需要,改进算筹和筹算的迫切要求迅速提到日程上来。对筹算方法的研究和改进,首先是从简化乘除运算开始的。早在8 世纪的中唐时期,以《夏侯阳算经》名义流传至今的《韩延算书》,就记载了把多位数乘除通过身外添减等转变成乘以或除以单位数的方法。北宋科学家沈括在《梦溪笔谈》中提到了求一、上驱、搭因、重因、增成之类筹算的简捷算法并且指出:算术“见简即用,见繁即变,不胶一法”①,概括地说明了当时这样一种趋势。南宋数学家杨辉对筹算算法的发展有突出的贡献。杨辉,字谦光,钱塘(今浙江杭州)人,生平不详,曾在浙江做过地方官员,撰有《详解九章算法》附《九章算法纂类》共12 卷(1261),《日用算法》2 卷(1262),《乘除通变本末》3 卷(1274),《田亩比类乘除捷法》2 卷(1275),《续古摘奇算法》2 卷(1275),后三种一般合称《杨辉算法》。在杨辉的著作中,系统地叙述了以加代乘和以减代除的各种方法,其中“加法代乘”有五法,“减法代除”有四法,如加一位、加二位、重加、隔位加、连身加、减一位、减二位、重减、隔位减等。他还介绍了唐宋相传的求一代乘除法并编成易于上口的歌诀。如求一乘法歌诀是“五六七八九,倍之数不走。二三当折半,遇四两折纽。倍折本从法,实即反其有..”①用这种方法把乘数的首位变成1,然后再用加一位、加二位等方法来计算。对于除法,也有求一歌用来简化运算。但通过求一除法歌诀以减法代除进行除法运算实际上并不简捷,所以后来被归除歌诀所代替。杨辉《乘除通变算宝》中还载有九归歌诀、化零歌以及除数是两位数的飞归歌诀等。如九归古诀是:“归数求成十,归除自上加。半而为五计,定位退无差。”杨辉在这四句古诀的基础上,又添注了三十二句新口诀,使之更加明确。像杨辉算书里记载的歌诀形式,在13、14世纪宋、元、明三代是很流行的。当时不仅用这种诗歌形式提出问题,而且① 《梦溪笔谈》卷18。

  ① 见杨辉《乘除通变本末》中的《乘除通变算宝》。

  用来说明算法。这种便于记忆和掌握的形式,后来更加简明和完善。它反映了筹算算法的发展,也促进了珠算的产生,而它本身也逐渐演变成后人熟知的珠算口诀。

  在唐宋时期还有一部《谢察微算经》。《新唐书·艺文志》载《谢察微算经》3 卷,《宋史·艺文志》作谢察微《发蒙算经》3 卷,对这部算经的年代现在还难以确定。有些学者认为这是五代时的作品,并据此书残存部分“用字例义”中提到与算盘有关的用语,如中、算盘之“中”、脊、进、退、上、下等,推断五代时已经有了珠算②。但是,这部分内容是否为《谢察微算经》原有的内容尚有疑义,并且现在还没有掌握元代之前已有珠算的任何一条可靠记载,所以对这类问题尚有待进一步的考证与研究。

  除上述各项数学成就外,在诸如四舍五入法,小数记法,联立方程组解法,已知三角形三边求面积的公式,棋局总数计算,运筹思想与实践等方面,两宋时期的数学家们也都作出了相当出色的贡献。