中国古代最早的记数方法是结绳。所谓结绳记数,就是在一根绳子上打结来表示事物的多少。比如今天猎到五头羊,就以在绳子上打五个结来表示;约定三天后再见面,就在绳子上打三个结,过一天解一个结;等等,结可以打得大一些,也可以打得小一点,大的结表示大事,小的结表示小事。
比结绳记数稍晚一些,古代的先民又发明了契刻记数的方法,即在骨片、木片或竹片上用刀刻上口子,以此来表示数目的多少。
在中国历史上,到新石器时代的晚期,才逐渐地被数字符号和文字记数所代替。最晚到商朝时,我国古代已经有了比较完备的文字系统,同时也有了比较完备的文字记数系统。在商代的甲骨文中,已经有了一、二、三、四、五、六、七、八、九、十、百、千、万这13个记数单字,而有了这13个记数单字,就可以记录十万以内的任何自然数了。当然,商代甲骨文的形体与现代的汉字不同。
算筹的发明就是在以上这些记数方法的历史发展中逐渐产生的。它最早出现在何时,现在已经不可查考了,但至迟到春秋战国;算筹的使用已经非常普遍了。算筹是一根根同样长短和粗细的小棍子,那么怎样用这些小棍子来表示各种各样的数目呢?
古代的数学家们创造了纵式和横式两种摆法,这两种摆法都可以表示1、2、3、4、5、6、7、8、9九个数码。下图便是算筹记数的两种摆法:
那么为什么又要有纵式和横式两种不同的摆法呢?这就是因为十进位制的需要了。所谓十进位制,又称十进位值制,包含有两方面的含义。其一是“十进制”,即每满十数进一个单位,十个一进为十,十个十进为百,十个百进为千……其二是“位值制,即每个数码所表示的数值,不仅取决于这个数码本身,而且取决于它在记数中所处的位置。如同样是一个数码“2”,放在个位上表示2,放在十位上就表示20,放在百位上就表示200,放在千位上就表示2000。在我国商代的文字记数系统中,就已经有了十进位值制的萌芽,到了算筹记数和运算时,就更是标准的十进位值制了。
按照中国古代的筹算规则,算筹记数的表示方法为:个位用纵式,十位用横式,百位再用纵式,千位再用横式,万位再用纵式……这样从右到左,纵横相间,以此类推,就可以用算筹表示出任意大的自然数了。由于它位与位之间的纵横变换,且每一位都有固定的摆法,所以既不会混淆,也不会错位。毫无疑问,这样一种算筹记数法和现代通行的十进位制记数法是完全一致的。
中国古代十进位制的算筹记数法在世界数学史上是一个伟大的创造。中国古代数学之所以在计算方面取得许多卓越的成就,在一定程度上应该归功于这一符合十进位制的算筹记数法。马克思在他的《数学手稿》一书中称十进位记数法为“最妙的发明之一”,确实是一点也不过分的。