1.2 大道至简的中国古算
1.2.1 算筹:中国古代的高超算术
算筹是何物?你也许不曾耳闻,但一定知道“运筹帷幄”这个成语,它所言之“筹”正是算筹。
算筹是石子计数和契刻计数的发展成果,最早出现于商周时期,在算盘发明之前,堪称世界上最先进的计算工具。先进的计算工具竟是一根根小小的棍子,人们通过多样的摆放棍子的方式进行计算。小棍的材料来源多样,有竹子、木头、象牙、兽骨、金属、玉器等,凡是能削成棍状的东西皆可为算筹。当然,我们现今所能看到的多是耐腐蚀材质的算筹。小棍通常是光滑无痕的,但也有部分算筹上刻有便于计算的辅助信息。
像现代人随身携带手机一样,懂数学的古人通常会随身佩戴由丝布制成的算袋,里头放着一把算筹。到了唐朝,更有相关法律规定文武百官必须佩戴算袋。可见在彼时,算筹不单是一种计算工具,更是地位和身份的象征。
1.算筹示数
史上第一本记述算筹的专著是约1500年前的《孙子算经》,其中详细记载了用算筹表示数字的方法。算筹中用红棍表示正数,黑棍表示负数,有纵横两种“布棍”模式。纵式用竖棍表示1,横棍表示5;横式反之,如表1.1和表1.2所示。0比较特殊,用留空表示。
表1.1 用算筹表示1~9
表1.2 用算筹表示−9~−1
不过以红黑两色来区分正负毕竟比较麻烦。在只有一种颜色的情况下(尤其是在书写时),人们可以通过一根斜放的小棍来表示负数,如表1.3所示。
表1.3 用单色算筹表示负数(以纵式为例)
对于不同的数位,纵式、横式是相间使用的,《孙子算经》如是描述:“凡算之法,先识其位。一纵十横,百立千僵,千十相望,万百相当。”通俗地讲,个位上的数字用纵式,十位上的数字用横式,百位再用纵式,千位再用横式,依次类推。这样主要是考虑到0的存在,如数字1024的算筹表示如表1.4所示。表中凸显了0的空位,但在实际使用中,尤其在书写(誊抄算法)时,空位很容易被忽略。有了纵横交错的用法,即使没有空位,同一摆法的2和1挨在一起,人们也不会把1024当成124。
表1.4 1024的算筹表示
当然,这种用法应对不了0连续出现的情况,如100024就有被当成1024的可能。人们会在“布筹”的计算板上画好棋盘一样的表格以便留空,或者用围棋子来表示0,以避免这个问题。在书写方面,则引入了符号“〇”。纵横交错的形式作为经典范式被一直沿用了下来。
2.筹算
运用算筹的算法叫筹算。算筹本身仅提供了一种用棍子表示数字的“书写”形式,筹算才是其“灵魂”所在。
筹算的功能强大,除能进行最基本的加减乘除运算之外,它还能进行乘方和开方运算,甚至能解线性方程(组)、求最大公约数和最小公倍数、解同余式组、造高阶查分表等。筹算所用到的负数、小数、分数等较抽象的数学概念比西方早了上百年甚至好几百年。
南北朝的数学家祖冲之使用筹算将圆周率精确到了小数点后7位(3.1415926~ 3.1415927)。
除圆周率之外,我国古代著名的秦九韶算法、剩余定理等了不起的数学成就也是靠筹算得到的。
在进行筹算时,先将算筹摆成待计算的数字,再一边念口诀一边调整算筹的布局,不断形成新的数字,最终得到计算结果。以64×16为例,计算过程如下。
(1)上位布64,下位布16,且下位的个位与上位的最高位对齐,如图1.24所示。
图1.24 第(1)步
(2)上位中的6乘下位中的1,得中间结果600,并置于中位;上位中的6乘下位中的6,得中间结果360,累加至中位,中位为960,如图1.25所示。
图1.25 第(2)步
(3)移去上位的6,下位中的数整体右移一位,如图1.26所示。
图1.26 第(3)步
(4)上位中的4乘下位中的1,得中间结果40,累加至中位,中位为1000;上位中的4乘下位中的6,得中间结果24,累加至中位,此时中位为最终结果1024,如图1.27所示。
对于初学者,筹算的过程有些令人眼花缭乱,但熟练的筹算者可以达到很快的运筹速度。沈括在《梦溪笔谈》中有这样的描述:“运筹如飞,人眼不能逐。”
图1.27 第(4)步
3.算筹的缺陷
筹算虽然强大,但算筹毕竟是件简单的工具,终有捉襟见肘的时候。同现今计算机软件的发展往往会对硬件提出更高的要求一样,人们为算筹定制了丰富多样的算法和口诀,而算筹渐渐无法适应复杂的算法(如重因法、身外加减法、求一法等)。筹算时所用到的算筹数量庞大,表示单个数字就需要1~5根算筹,数字越多越繁乱。三国时期魏国人管辂在其《管氏地理指蒙》一书中甚至以筹喻乱:“形如投算,忧愁紊乱。”
最早的算筹长约14cm,数字“6”的占用面积就达近200cm2,进行复杂运算时需要一块大的场地。宋元时期,算筹改良至1~3寸(约3~10cm),但它依然难以应对计算量大的问题。宋代马永卿在《懒真子》一书中有过对算筹占用面积的描写:“卜者出算子约百余,布地上,几长丈余。”
辉煌一时的算筹逐渐被遗忘在古籍的字里行间,另一个功能强大的算具带着它的历史使命隆重登场了。
1.2.2 算盘:中国古算的活化石
在古代的所有计算工具中,中国的算盘是为算术提供了简单计算方法的唯一工具。西方(美国和欧洲)的观察者在目睹人们利用算盘完成最为复杂的计算时,往往会大为惊叹。
——法国数学历史学家乔治•伊弗拉(Georges Ifrah)
在诸多古老的计算工具中,算盘是最为人们所熟知的一种工具。在中国,年轻人即使没有摸过算盘,也一定见过它的模样。
算盘虽小,但作用奇大。古代的掌柜靠算盘结算账目,近代的科学家靠算盘计算研制原子弹的数据。今天的许多学校(甚至国外的学校)用算盘或类似于算盘的教具来启发儿童的数学思维。
同中国红、中国结、武术、诗词、瓷器一样,算盘早已成为典型的中国文化符号。
2013年12月4日,珠算被正式列入联合国教科文组织“人类非物质文化遗产代表作名录”。
下面对中国算盘的样式、用法、起源以及其他国家的算盘和算盘的发展进行介绍。
1.中国算盘的样式
实用型的算盘多为竹木材质(现在也有塑料材质),长方形的粗木框中从左到右串着一串串活动的算珠,一串称为一档,被中间的横梁隔为上下两部分,上方的算珠称为上珠,下方的则称为下珠,如图1.28所示。
图1.28 算盘样式
经典的算珠分布为“上二下五”(小部分现代算盘也有“上一下五”或“上一下四”的分布方式),一颗上珠代表5,一颗下珠代表1。按理说,每一个数位从0至9只需“上一下四”,为什么会上下都多一颗算珠呢?原因是我国古代采用的是十六进制的重量计法。常言道“半斤八两”,而1斤正是16两,“上二下五”正好可以用来表示0~15。不仅如此,十进制的一些算法还会临时用到这两颗“多余的”算珠。
为什么会用单独分出的上珠来表示5,而不是直接在每一档串9颗或15颗算珠呢?这种形式同算筹如出一辙(纵式中以横棍表示5,横式中以竖棍表示5),本质上是因为人一只手有5根手指,与人类广泛使用十进制是因为双手共有10根手指是一个道理。
2.中国算盘的用法
算盘的用法十分简单,将相应数目的算珠推向横梁以表示加上相应数字,推离横梁则表示减去相应数字。图1.29所示的算盘示数为1234567890。
虽然使用算盘的规则比较简单,但要做到熟练使用以及掌握各种复杂的口诀和算法绝非一日之功。算盘的算法——珠算是从筹算继承而来的。从最早的《数术记遗》到经典的《算法统宗》,再到如今《中国珠算大全》《世界珠算通典》等集大成的专著,所记载的口诀数不胜数。
图1.29 算盘示数示例
以最简单的“三下五除二”为例,其原本是珠算加法中的一条基本规律。如果下档中靠着横梁的算珠不少于两颗,为了给它加上3,就需要拨下一颗表示5的上珠(“下五”),再去掉两颗表示1的下珠(“除二”),即把+3拆分成+5和-2两步执行。图1.30所示则以3+3为例展示了这一过程。
图1.30 “三下五除二”的计算过程
3.中国算盘的起源
算盘并非一开始就是“木棍串木珠”的形式,最初的算盘是将石子等物摆在画有辅助线或挖有沟槽的盘上,其本质是石子计数进化的产物。但中国的算盘与算筹有着一脉相承的形式与算法,更应将其视作算筹进化的产物,而算筹本身也是石子计数的产物。算具的发展环环相扣,每代算具之间其实并没有明确的界限,如图1.31所示。
图1.31 从石子到算盘
《数术记遗》一书介绍了14种计算方法——“积算”“太一”“两仪”“三才”“五行”“八卦”“九宫”“运筹”“了知”“成数”“把头”“龟算”“珠算”“计数”。除“计数”属于心算之外,其余13种均有相应的计算工具。其中,“太一”“两仪”“三才”“九宫”“珠算”等算法的工具与算盘十分形似,可以视为算盘的前身——在算板上刻画出棋盘格一样的纵横线(或挖出沟槽),将算珠置于板上,按特定的规则进行位移,像下棋一样完成计算。算珠在板上“游走”,人们形象地称这些工具为“游珠算板”。
“太一”以算珠的位置表示数字,“两仪”“三才”“九宫”以算珠的颜色和位置表示数字,“珠算”则以算珠的颜色和数量表示数字,这些工具生动地展示了算盘的演进。图1.32所示为《数术记遗》中“珠算”工具的复现,黑珠表示5,白珠表示1,与现今的算盘已经十分相似。
图1.32 根据《数术记遗》复现的“珠算”游珠算板[24]
游珠算板显然不够便携,久而久之便产生了珠板一体的算盘。
4.其他国家的算盘
除中国之外,各种形式的算盘还曾在其他国家或地区出现,如印加、古埃及、古希腊、古罗马、印度、日本、韩国、俄罗斯等,只是它们都没有中国算盘这般“长寿”。欣赏这些充满异国风情的算盘,如同见证了算盘演化的历史。
1)古希腊计数板(Greek abacus)
古希腊计数板约出现于公元前5世纪,多为木质或鹅卵石材质,在板上刻画辅助线用于标记数位等信息,用鹅卵石一类的算子置于板上进行计算。图1.33所示为1846年在希腊发现的计数板临摹图,其实物是一块白色的大理石板,长150cm,宽75cm,厚4.5~7.5cm。
图1.33 古希腊计数板临摹图
板上有3串辅助计算的符号,左侧与底部的符号相同,右侧的一串则多了两个符号。每个符号代表着不同的数字,具体含义如表1.5所示。
表1.5 古希腊计数板符号含义
2)古罗马沟算盘(Roman abacus)
古罗马沟算盘约产生于公元元年,算子在算盘的沟槽中游走,“上一下五”的形式与中国算盘高度一致,因此学术界有二者是否曾相互借鉴的争议。图1.34所示为德国的一所博物馆于1977年制作的古罗马沟算盘复制品。
图1.34 古罗马沟算盘复制品[25]
3)印加算盘(Inca abacus)
印加是一个古老而神秘的帝国,他们的算盘(见图1.35)像缩小的梯田,样子十分古怪,其用法至今不明。但在2001年有科学家通过研究提出了一种可能的用法——基于斐波那契数列使用。如果真是这样,那印加人的智慧实在令人叹服。
图1.35 印加算盘[26]
4)日本算盘(Japanese abacus)
日本算盘本质上就是中国算盘,若不特意说明,根本无法区分。图1.36所示为常见的日本算盘。
图1.36 日本算盘[27]
5)俄罗斯算盘(Russian abacus)
俄罗斯算盘也经过了数百年的发展变迁,因为在欧洲广泛流传,所以又称为欧洲算盘。俄罗斯算盘的最终模样与中国算盘十分相似,只不过每一档上有10颗珠子,没有横梁,使用时是竖放的,从右往左拨动珠子。串珠的棍子是弯的,其中间稍稍隆起,以保证珠子能静止在左右两侧,如图1.37所示。
图1.37 俄罗斯算盘[28]
该算盘上有两种颜色的珠子,这是为了便于读数。其中一档上只有4颗珠子,这不是残缺的,是为了方便计算特意设计的。
5.算盘的发展
相比后来出现的计算尺、机械计算器等更先进的工具,算盘怎么看都是“落后”的。相比在16世纪就逐渐没落的西方算盘,中国算盘确实“长寿”得有些让人不可思议。
究其原因,一方面是因为中国珠算有着丰富的算法口诀,熟练的算盘手能拨出“无影指”的感觉。在近现代的多次节目表演中,算盘的计算速度往往超过了机械计算器甚至电子计算器。在中国古代,一把算盘足以解决人们生活中所有的日常计算。
另一方面,西方的一些国家和地区在很早就引入了灵活的笔算。西方的笔是罗马人在6世纪发明的羽毛笔,西方的纸是羊皮纸,适合硬笔书写。而中国的笔是适合书法绘画的毛笔,纸是渗透性好的宣纸,笔算自然举步维艰。
到了21世纪,整个世界全面步入电子时代,算盘才开始逐渐从实用领域淡出。
[24] 图片来自《世界珠算通典》。
[26] 图片来自维基百科。
[25] 图片来自维基百科。
[27] 图片来自维基百科。
[28] 图片来自维基百科。