我们都知道,周代对贵族要求有六种技能,“养国子以道,乃教之六艺”,即礼、乐、射、御、书、数,将会计算作为必要技能之一,后来孔子将之命名为“君子六艺”,作为儒家门徒的必备技能,因此当时儒家门徒往往是“带刀文人”,当然后世儒者越来越文弱,已经背离了孔子的初衷。
数学是一切科学的基础,日常生活中也时刻会用到数学计算,古人将之作为必备技能之一无疑是正确的。但任何时代都一样,计算就必须要有相应的工具,现代有计算器,之前有算盘,那么在算盘之前,中国人用什么来计算呢?
早在上古年间,中国人对数学就产生了很深的认识,最典型的是河图洛书,其中河图中有10个数即1——10,奇数为阳、偶数为阴,阳数相加为25,阴数相加为30,阴阳相加是55,所以古书中说“天地之数五十有五,以成变化而行鬼神也”,认为天地之数为55,宇宙万物都是由天地之数变化而来等。
在此基础之上,中国古人发明了十进制,甲骨文卜辞中就有关于十进制的一些表述,而十进制的出现让中国古代数学相比其他文明具有明显的优势,取得了许多卓越的成就。古罗马的数字系统没有位值制,只有七个基本符号,计算超过7的数字时就很繁琐,数字越大越复杂;美洲古玛雅使用了位置值,但用的是20进位,至少需要19个数码;古巴比伦人也用位值制,但用的是60进位,至少需要59个数码。相比之下,十进制只需要9个数码,就可以计算庞大的数字,所以马克思在他的《数学手稿》一书中称十进位记数法为“最妙的发明之一”。
上古时期,人们计算需求非常简单,扳手指或者数木棍、竹条之类的基本就能满足。随着时代的发展,计算量越来越大,尤其十进制出现之后,更利于大数字计算,但这时中国人还是非常简单的“数木棍”,不过木棍这套计算硬件的软件系统发生了天翻地覆的变化,可以进行更为复杂的运算。
春秋战国时,老子《道德经》中说“善数者不用筹策”,计算高手不用“筹策”就能轻松得出答案,因此当时的计算工具是“筹策”,后来“筹”与“策”都被统称为算子,以“筹”或“策”为工具的计算叫“筹算”,即以筹为工具来记数、列式和进行各种数与式的演算。
根据文献记载,算筹除竹筹外,还有木筹、铁筹、骨筹、玉筹和牙筹,并且有盛装算筹的算袋和算子筒。《汉书·律历志》记载:“其算法用竹,径一分,长六寸,二百七十一枚而成六觚,为一握。”大约271枚为一束,放在专用的布袋或筒随身携带,需要记数与计算时拿出来摆弄。三国魏国刘徽注释《九章算术》时说:“正算赤,负算黑,否则以邪正为异。”《隋书·律历志》记载“其算用竹,广二分,长三寸”,正数有216枚、负数有144枚,宋代沈括《梦溪笔谈》中说:“算法用赤筹、黑筹,以别正负之数。”
通过这些文献记载可见:一是算筹多数为竹制,但规格不一,每个时代不大相同,总体是越来越便于保存与携带;二是在三国之前,中国人就已经有了正负数概念,还用颜色加以区分;三是中国人使用“筹”辅佐计算的时间很长,至少延续到了宋代。
有了硬件算筹之后,就必然会产生相应的软件筹算系统,而古人的筹算方式则让人大开眼界。
首先是算筹摆位,表达单位数字时,1—5则以或纵或横的方式排列,6—9则以纵横结合的方式排列;表达多位数时,个位用纵式,十位用横式,百位用纵式,千位用横式,以此类推,遇零则置空,相当于如今的空格。最早记载筹算规则的是南北朝时《孙子算经》,上面记载:“凡算之法,先识其位。一纵十横,百立千僵。千、十相望,万、百相当。”之所以是这样的摆法,主要是因为十进制的需要,每个数码所表示的数值,与本身没有什么关系,关键取决于它所处的位置,在个位数是8的数码,在十位上就表示80。
其次是算筹计算,其加减乘除运算与如今差不多,以乘法为例:乘数与被乘数上下放置,上数的首位与下数的末位对齐,然后先用上数首位与下数各个数字相乘,注意上数的单位是个位、十位、百位等,如果上数是21、下数是111的话,那么首先得出的一组数字是2220;其次用上数其他数字与下数分别相乘,如果是21的话,那么1就是个位数,不需要添加0;最后,将分别相乘计算出来的数字相加,就得出最终的结论了。与如今乘法计算规则相比,已经基本上没什么太大区别了。
当然,加减乘除属于相对比较简单的运算,古人还利用筹算进行更为复杂的计算,不仅是正、负整数与分数的四则运算和开方,而且还包含着各种特定筹式的演算,比如北宋贾宪就用筹算进行过高次幂开方计算,古代中国数学成就超过西方,也与筹算密不可分。
对于古代普通百姓来说,筹算还是比较复杂,于是大约东汉时古人发明了珠算,但当时的珠算比较简单,是一种记数工具或者只能作加减法的简单算板,稍微复杂一些的问题还是需要算筹。关于珠算的算盘始于何时,清代文人争议很大,有说是始于东汉,有说是始于元代,现代学者考证得到比较公认的结论是始于唐代、盛于宋代。在宋代《清明上河图》上,画有一家药铺,其正面柜台上赫然放有一架算盘,说明当时算盘已经非常流行,大约是此时中国结束延续长达2000余年的筹算,而进入了珠算时代。
不过,算盘相当于硬件,算法相当于软件系统,但直到明朝万历年间,当时的珠算系统还不算“友好”。明朝万历年间,安徽黄山屯溪商人程大位为了简化计算,用了26年时间写就《算法统宗》与《算法纂要》,确立了算盘用法,完善了珠算口诀,开创了珠算计数的新纪元,因而被誉为“珠算之父”,英国学者李约瑟评价为:“在明代数学家当中,最引人注目的是程大位”。
最近400年来,在现代计算器出现之前,中国人的计算工具就是算盘,而其计算规则采用的就是程大位算法,据说当年制造原子弹时很多科学家使用算盘计算,可见程大位算法的可靠。
最后,筹算时代虽然早已过去,但在中华文明宝库中却留下了很多珍贵的遗产,至今仍影响着我们,不仅仅数学上的一脉相承的成就,还有“运筹帷幄”、“筹划”、“一筹莫展”、“更胜一筹”、“略逊一筹”等成语都与古人筹算密不可分。