书城科普古代数学与算学
3076400000007

第7章 古代记数制度与计算工具

(一)世界上最早的十进位值制记数法

十进位值制记数法是人类文化史上的一大发明,它可以和字母的发明相媲美。前者只需要用十个数字就可以表示任何数,而后者只需要用几十个字母就可以写出所有的文字。十进位值制记数法包含两个要素,一个是十进制,另一个是位值制。所谓十进制,就是我们平时所说的“逢十进一”和“退一当十”。所谓位值制,就是一个数码表示什么数,不仅取决于这个数码本身,而且还要看这个数码所在的位置。例如同一数码2,在23中表示20,在32中表示2,在2300中表示2000,就是因为它所在的位置不同。

这一思想在今天看来是如此简单,但是在历史上并不是所有的古代民族都自然地采用十进位值制的:古代巴比伦人采用六十进制;玛雅人和阿兹台克人采用二十进制;罗马人则用五至十混合进制;古代埃及和希腊虽然采用十进制,但是未曾出现位值概念。印度十进位值制虽已在巴克沙利手稿上看到(时间大约不早于三四世纪),实际上到6世纪末才正式使用。

我国自古以来就使用十进制,在公元前14世纪殷代甲骨文上以及周代青铜器铭文中已有数字写法和十进制法的记录。在商代甲骨文记数的文字中,自然数都用十进位制,其中一、二、三、四、五、六、七、八、九、十、百、千、万各有专名,用十三个单字表示。西周金文继承了殷商甲骨文的记数制,仅个别数符有所变化。应该说,中国是世界上最早产生这一概念并确立完善的十进位值记数制度的国家。

有了方便的位值制记数法,自然就有简捷的四则运算法,进而又发展成为一整套以算为中心的解题方法,如分数算法、开平方开立方、联立方程的分离系数法、直到后来的高次方程的数值解法等等,在世界上都处于领先地位,这些都得益于我国具有方便的记数法。

(二)算筹与筹算

1.算筹

在人类文化历史上,许多民族都曾有各自不同的计算工具。“算筹”是中国古代特有的主要计算工具,它的出现使十进位值制在中国得以完备和最终确立。什么是“算筹”呢?就是一些长短粗细一样的小棍子,大多是用竹子、木、骨、铜、铁等材料制作。

从西周直至宋、元,在长达两千年历史时期内,“算筹”是我国社会各行各业通用的算具。到汉代时“算筹”已很流行,一些知识分子经常把“算筹”带在身上。我国古代怎样用算筹记数呢?《孙子算经》《夏侯阳算经》编有押韵的口诀:“凡算之法,先识其位,一纵十横,百立千僵。千十相望,万百相当。”“满六以上,五在上方,六不积算,五不单张。”记五或小于五的数,几根算筹就表示几,记六、七、八、九用一根横置的筹以一当五,放在上面。

用算筹表示多位数则有纵、横两种方式。纵横式摆法如下:摆多位数时,个位用纵式,十位用横式,百位再用纵式,千位再用横式……这样纵横相间,依此类推,遇到零时就不放算筹留个空位。这样用算筹纵横布置,就可以表示出任何一个自然数。由于算筹纵、横相间布列,以空位显示的零很容易识别。除了符号不同以外,算筹记数制所表示的自然数与现今使用的十进位值制完全一样。算筹在我国使用了两千多年,直到15世纪算盘推广后,才逐渐退出历史的舞台。

2.筹算

算筹指算具,筹算则指算法。广义上讲,筹算应是一个由一系列算法所构成的数学体系和在中国历史上延续了一千五百余年的科学传统。它的核心是十进位值制和分离系数法,算筹只不过是它所倚重的一个工具而已。

北宋布衣学者卫朴是我国古代算家布算运筹的典型。沈括在《梦溪笔谈》中称他“运筹如飞,人眼不能逐”。张耒在其《明道杂志》中更是记载了一个近乎神奇的故事:卫朴在布算的时候,算筹摆满了桌子,他只要以手轻轻抚一下,若是有人偷偷拿走了一根算筹,他只要再抚一下桌面就可以察觉。如果古代算家没有这样娴熟的布算运筹技巧,很难设想祖冲之可以把圆周率正确地计算到七位有效数字,秦九韶能够解出高达10次的数字方程。

筹算的加减法和乘除法都是由“高位算起”,筹算的乘法在《孙子算经》《夏侯阳算经》中叙述得很详细:把相乘二数一上一下对列,上位列乘数,下位列被乘数,中位留给乘积。被乘数的最低位与乘数的最高位对齐,然后用上面数中的最高位数依次自左而右的乘下面数的每一位,结果随乘随加。乘遍下数之后,便将该位数去掉,并将下面的数右移一位;再用上面次高位数遍乘下数的每一位,结果仍随乘随加入中间一列,以下按此原则继续,直到最后一位。中间一列得出来的数就是乘得的积。筹算的除法与乘法相反:在除法中,被除数称为“实”,除数称为“法”,除得的结果称为商。商在上位,实在中位,法在下位。筹算做除法时,随乘随减。

筹算乘除法当然离不开“九九歌”。中国到春秋战国时,“九九歌”就已被广泛利用、流传。筹算为古代数学家提供了应用分离系数法的途径,从而使得一些数学关系的表达和有关的运算得以大大地简化。利用筹算体系的纵横捭阖,中国古代数学取得了一些脍炙人口的成果,诸如开平方和开高次方、解高次方程、解线性方程组和高次方程组、计算圆周率、解一次同余式组、造高阶差分表等等。

(三)算盘与珠算

算筹可以说是数学机械化的最早形式。它可以利用简单的工具从事相当广泛而复杂的运算,但是它纵横排列的算法必然影响到其布算速度,而且具有占地面积大、运算过程中算筹易于被移动等缺点。在频繁的商业交往和诸如军事、工程之类的野外作业中,筹算有时就显得捉襟见肘了。人们在长达上千年的历史中始终尝试着对算具和算法进行改革,在人们长期的实践活动中,珠算在算筹的基础上慢慢发展起来,最终算盘取代了算筹,筹算发展成了珠算。

中国是珠算的故乡,但有关“珠算术”的最早书籍并没有留传下来,创造珠算盘的年代和地区也难于考证。“珠算”这个名词,早在190年左右东汉末徐岳所著《数术记遗》一书中就已经出现。570年左右,北周数学家甄鸾在此书的注释中描述,每位有五颗可移动的珠,上面一颗相当于五个单位,下面四颗中每一颗相当于一个单位。这和现代的算盘非常相像。

到了15世纪左右,珠算进一步发展起来,由于珠算的普及,筹算被淘汰了。民间数学的发展,使珠算技术日臻完善,运算大为简便,人们在实际生产和日常生活中都普遍采用了珠算。演算工具的改进和简化,对数学的发展是至关重要的进步和贡献。

算盘发明后,原有筹算术的四则运算方法逐渐转变为珠算术的运算方法。关于珠算术,明代吴敬1450年著的《九章算法比类大全》的记载最早。他的著作不但明确提到算盘,而且载有一些只有在珠算中才能出现的算法。如“一弃四作五”“无一去五下还四”等。

明代中晚期是珠算的黄金时代,这一时期出现了许多专门介绍珠算的书籍和珠算家,各种珠算算法和相应的口诀也被发展完善。也正是在这一时期,珠算不仅广泛流行于民间,而且陆续被传播到日本、朝鲜、越南、泰国等地,对这些国家的数学发展产生了重大影响。

明代珠算书很多,其中以程大位的书流传最广、影响最大。他编写了一本多达17卷的《算法统宗》,系统完备地介绍了珠算术,是一部以珠算盘为计算工具的应用数学书。书中列有算盘式样,各种运算口诀,如“一上一,一下五除四;一退九进一十……”等。这和现代珠算口诀完全一致。

珠算的乘法口诀就是九九口诀,除法一般用宋元数学家创造的九归口诀。程大位明确规定了“九九合数”应“呼小数在上,大数在下”;“九归歌”应“呼大数在上,小数在下”。例如“六八四十八”即是乘法口诀,“八六七十四”是九归口诀。这些口诀相当完善,应用方便,直到现在还在通用。

除了通常的四则运算外,珠算也用于开方、解高次方程和其他计算问题。程大位的《算法统宗》涉及的各类计算问题均用珠算解决。《算学新说》里详细地介绍了珠算开方的过程。可见作为计算工具,珠算基本可以涵盖筹算的功能,但是运算速度却比后者快很多。

清代虽然传入了西方的笔算、纳皮尔筹算和比例规算法等,但是珠算仍是主要的计算手段。直到今天,珠算在我们的生活中仍然发挥着重要的作用。