神算子瑛姑的算子
再看中国的数字符号。
在古代中国,有两套数字系统。一套当然是文字:一、二、三、四、五、六、七、八、九、十、百、千、万、亿。另一套是颇具中国特色的象形符号,1用“丨”表示,2用“丨”表示,3用“丨”表示,4用“丨丨”表示,5用“丨”表示,6是上面一竖、底下一横(也可以上下颠倒,改为上面一横、底下一竖,以下7、8、9亦然),7是上面一竖、底下两横,8是上面一竖、底下三横,9是上面一竖、底下四横(图1-8)。这里的竖与横,都是从一种计算工具演化出来的符号。
▲图1-8从1到9,古代中国的计数符号
这种计算工具既简单又古老,它叫“算筹”,俗称“算子”(图1-9)。《射雕英雄传》里不是有一位性格孤僻、武功神奇的女士“神算子瑛姑”吗?瑛姑在自己的隐居之处闭门不出,天天忙着解方程、开立方,她用的计算工具,就是算子。金庸先生原文描写如下:
“只见当前一张长桌,上面放着七盏油灯,排成天罡北斗之形。地下蹲着一个头发花白的女子,身披麻衫,凝目瞧着地下一根根的无数竹片......黄蓉坐了片刻,精神稍复,见地下那些竹片都是长约四寸,阔约二分,知是计数用的算子。”
▲图1-9这些竹片就是算筹,也可以用其它材料制作,如树枝、金属、象牙
瑛姑的算子用竹片制成,长四寸,宽二分(十分为一寸),一根根摆在地上,每几根组成一组,每一组表示一个数字。如果是个位数,算子竖排;如果是十位数,个位上的数用竖排表示,十位上的数用横排表示;如果是百位、千位、万位数,则纵横交替:个位竖排,十位横排,百位竖排,千位横排,万位再竖排......
将算筹的摆法写在纸上,就成了数字符号,算筹纵横交错,数字符号也是纵横交错。同样是用象形符号表示数字,古代中国的方法要比古埃及简便易懂。首先,需要的符号数量很少,只用到横和竖两个基本符号,就像计算机二进制只需要用到0和1一样;其次,读数直截了当,只要不把数位弄错,就能直接读出一组算筹所表示的数字,而古埃及的数字符号完全没有数位之分,必须先将每个符号所代表的数字全部加起来,才能搞明白这到底是个什么数。
为了让数字符号进一步简化,大约在唐宋时期,中国还发展出一套写法,将原先用四根算筹表示的4简化成交叉的“×”,将原先用五根算筹表示的5简化成上面缺角的8,将原先用九根算筹表示的9简化成一个“×”再加一个小尾巴。这套简化版的数字符号在中国官方和民间的账簿上得到广泛应用(图1-10),直到20世纪才渐渐消失,它们被称为“账码”。
▲图1-10从算筹符号到账码符号
不过,中国的数字符号也存在一个明显缺陷——当某个数位上的数字是空白时,并没有特定的算筹或账码与其对应,只能将那个数位空缺出来。比如说,想写1111,用四根算筹纵横交错摆一摆即可;可是要写11011,就得在前两根算筹与后两根算筹当中留出一段空白。这个空白究竟要留多大呢?没有固定标准。就算有标准,手写和摆放的时候也不可能做到标准统一。假如空白不够大,或者读数人的眼神不够好,就有可能把11011当成1111(图1-11),这绝对是无法容忍的误差。
▲图1-11用算筹表示1111和11011
更要命的是,如果要写的数字是110011,中间两个数位都是空白,被误读的可能性更大。古埃及数字符号却不会出现这种危险,因为古埃及根本不按数位书写数字,像前面所举的例子1023047一样,每个大数都是用许多符号加总出来的,只要做加法的时候不犯错,就不至于误读。