第1讲 算筹记数——古人用小棍子怎么表示数字
一纵十横,百立千僵——用竹棍摆出的十进制,比西方早了一千年。
原典
凡算之法,先识其位,一从十横,百立千僵,千十相望,万百相当。
——《孙子算经·卷上》
白话翻译
凡是计算的方法,首先要认识数位。个位用纵式,十位用横式,百位立(纵)着放,千位躺(横)着放;千位和十位都是横式、万位和百位都是纵式,它们两两相望、格式对应。
这短短十六个字,是中国古代算筹记数法的总纲。
示意图
数学解读
1. 什么是算筹?
算筹就是一把小棍子——竹子做的叫"筹",木头做的叫"策",还有用骨头、象牙、金属做的。长短粗细差不多,一般长约14厘米,直径约0.2厘米。
别小看这堆小棍子,中国古代所有的数学计算,从加减乘除到开方、解方程,全靠它们完成。祖冲之算圆周率精确到小数点后七位,用的就是算筹。
2. 纵式和横式:为什么要有两套?
1到5很简单——几根筹就代表几。但问题来了:如果12只摆成"| ||",你知道是12还是3?两个数挨在一起就分不清了。
古人的解决方案非常聪明:相邻数位用不同的摆法,一个纵着、一个横着,交替使用。
- 个位:纵式(竖着摆)
- 十位:横式(横着摆)
- 百位:纵式
- 千位:横式
- 万位:纵式
- ……以此类推
这样,就算两个数字紧贴在一起,你一看一纵一横,就知道它们属于不同的数位,绝不会搞混。
3. 6到9怎么摆?
你可能注意到了,如果1到5是一根一根累加,那5就是5根竖棍。那6呢?摆6根?那7、8、9呢?太占地方了。
古人的办法跟罗马数字类似——用一根横放的代表5(像算盘的上珠):
- 6 = 上面一横 + 下面一纵 (T 字形)
- 7 = 上面一横 + 下面二纵
- 8 = 上面一横 + 下面三纵
- 9 = 上面一横 + 下面四纵
横式反过来:6用一纵在上,其余横摆在下。
这样一来,再大的数字,每位最多只用5根筹(1上+4下),干净利落。
4. 零怎么办?
这是最妙的地方——零不用摆,空着就行。
比如105,就摆成"纵 空 纵纵纵",中间那个位置空出来,大家就知道那一位是0。
这本质上就是位值制(place value system)——数字的值不仅看有几根筹,还要看它在什么位置上。同样一根筹,摆在个位就是1,摆在百位就是100。
这个想法现在看起来天经地义,但在人类历史上是个了不起的发明。古巴比伦、古埃及、古罗马都没有发展出完整的位值制,中国的算筹记数法是全世界最早的十进制位值制之一。
高中课本关联
① 进位制思想(必修第一册·指数与对数)
算筹记数的本质就是十进制位值制。每个位置代表不同的数量级(个、十、百、千……),跟我们今天学的
完全同构。古人没有指数符号,但他们用"纵横交替"的物理布局,把位值制落到了实处。
② 二进制与信息编码(信息技术 & 数论入门)
纵横两种状态交替使用,跟二进制的思想遥相呼应——用两种状态的组合来表示更多信息。
一纵一横区分相邻数位,本质上是一种校验机制:用形状差异防止数字错位。这跟现代计算机里用奇偶校验、用不同频率区分信道,思路如出一辙。
③ 数论与中国剩余定理的伏笔
孙子算经最著名的贡献是"物不知数"问题(卷下第26题),也就是中国剩余定理。而要理解中国剩余定理,首先要理解"不同模数下的位值"——每个模数构成一个"数位",这跟算筹的位值制思想一脉相承。
思考与拓展
-
想一想:如果算筹用三进制(纵、横、斜)来区分相邻数位,会不会更高效?为什么古人最终选择了两种形态?
-
算一算:用算筹摆出数字 706、3141、9876,分别应该是什么样子?画出来试试。
-
比一比:罗马数字(I, V, X, L, C, D, M)和算筹记数法,哪一个更适合做加减乘除?为什么?
-
查一查:你知道算盘的上珠一颗代表5、下珠一颗代表1,这个设计跟算筹的6-9表示法有什么关系吗?
一句话总结
算筹不是简单的"数数工具",而是一套完整的十进制位值制系统——用纵横交替解决了错位问题,用空位解决了零的问题,用一横当五解决了大数的空间问题。 这套系统支撑了中国数学两千年,是我们理解古代算法的基础。