第4讲 筹算乘法——九九八十一,自相乘
八十一自相乘,六千五百六十一——古代人没有乘法竖式,他们用算筹和口诀,一步一步算出来。这背后是一套完整的位值制思想。
原典
九九八十一,自相乘,得几何?
答曰:六千五百六十一。
术曰:重置其位,以上八呼下八,八八六十四,即下六千四百于中位。以上八呼下一,一八如八,即于中位下八十。退下位一等,收上头位八十以上位一呼下八,一八如八,即于中位下八十。以上一呼下一,一一如一,即于中位下一。上下位俱收中位,即得六千五百六十一。
——《孙子算经·卷上》
白话翻译
题目很简单:81 乘以 81,等于多少?
答案是 6561。
但"怎么算"的过程,才是精彩的部分。孙子给出了详细的操作步骤:
第一步,把两个 81 上下排好位置("重置其位")。 第二步,用上面那位的十位数"八",去乘下面那位的十位数"八"——得到 64,但这个 64 表示的是 64 个百(因为是十位×十位),所以写在中间位作为"六千四百"。 第三步,用上面那位的十位数"八",去乘下面那位的个位数"一"——得到 8,表示 8 个十(十位×个位),写成"八十",加在中间位。 第四步,把上面的 81 往左移一位("退下位一等"),现在用上面那位的个位数"八",去乘下面那位的十位数"八"——又得到 64,这个 64 表示 64 个十,所以写成"六百四十"加在中间位。 第五步,用上面那位的个位数"八",去乘下面那位的个位数"一"——得到 8,写成 80(个位×十位),加在中间位。 第六步,最后用上面那位的个位数"一",去乘下面那位的个位数"一"——得到 1,写成 1,加在中间位。 第七步,把所有部分积加起来:6400 + 80 + 640 + 8 + 1 = 6561。
看,这就是古代的竖式乘法。只不过不是写在纸上,而是用算筹摆出来,一步一步操作。
示意图
数学解读
1. 孙子算法与现代竖式的对应关系
把孙子的文字描述翻译成现代竖式,是这样的:
其实仔细对照孙子的原文,你会发现他的算法和我们的标准竖式几乎一模一样——只是顺序不同。我们通常从右向左逐位相乘,而孙子则是按照上位的每一位分别去乘下位的每一位,最后统一汇总。
本质上,这就是乘法分配律的展开:
孙子的步骤恰好对应了 的展开过程,只不过他没有用代数符号,而是用文字描述每一步的操作。
2. "以上命下":位值制的核心秘密
孙子在讲解乘法之前,先说了一句非常重要的话:
凡乘之法:重置其位,上下相观,头位有十步,至十有百步,至百有千步,至千以上命下,所得之数列于中。
这句话的意思是:摆放算筹的时候,要先看清楚数位的位置——个位、十位、百位、千位,依次排列。"头位"是最高的那一位,往下数,十步到百,百步到千,以高位来命名低位的量级("以上命下")。
这才是筹算能够成功的关键:位值制。同样的数字"8",摆在个位就是8,摆在十位就是80,摆在百位就是800。古人不用"0"这个占位符,而是通过算筹在算筹板上的位置来表达数位——这比印度-阿拉伯数字的位值概念早了好几百年。
3. 九九表:古代的计算引擎
孙子之所以能这么快算出 81 × 81,靠的不是心算能力,而是对九九乘法表的熟练掌握。九九表是中国古代儿童入学必背的内容,据说在两千年前的春秋时期就已经流传了。
有趣的是,当时的九九表是从"九九八十一"开始,而不是从"一一得一"开始——就像我们今天教英语字母从 A 到 Z,而古代的数学口诀从最大开始倒着背。这种"大九九"(81句)的背诵方式,一直延续到唐代。到了宋代,才逐渐演变为"小九九"(36句,只背"小因大因",不背"大因小因",如"八九七十二"而非"九八七十二")。
| 版本 | 句数 | 特点 |
|---|---|---|
| 大九九 | 81 句 | 从"九九八十一"到"一一得一",正反都背 |
| 小九九 | 36 句 | 只背较小数在前的口诀,省略冗余 |
| 西方九九表 | 100 句 | 1×1 到 9×9,包含交换律重复项 |
4. 为什么"八十一,自相乘"要拆成四步?
你可能会问:既然有乘法分配律,直接 不就行了吗?为什么还要分四步走?
原因在于算筹操作的物理约束。算筹是实体的小棍子,你一次只能移动有限的数量。如果直接把 6400 + 80 + 640 + 1 全部写出来,中间没有暂存的空间。所以孙子规定了一个程序:每一步只算一个"部分积",写在中位,最后再统一汇总。
这个思路和我们今天学竖式乘法时先算各个"部分积"再相加,是完全一致的。只不过在纸上计算时,我们习惯从左到右写,而孙子是在算筹板上从右到左摆放——操作方向相反,但数学本质相同。
5. 与欧洲竖式乘法的历史对比
欧洲的竖式乘法大约在公元12世纪才由斐波那契(Leonardo Fibonacci)从阿拉伯世界引入。而孙子的筹算乘法——至少就我们今天看到的最早文本——已经系统地描述了两步以上整数乘法的完整算法。
当然,"最早"不等于"最好"。阿拉伯数字(包括0的占位符)在书写和运算效率上有天然优势,它让乘法可以一次性写到纸上,而不需要像算筹那样一步步摆放。但算筹的优势在于可以实时检查和纠错——每一根棍子的位置都清清楚楚,一步算错了可以立刻发现并纠正。
这两种方法各有千秋:算筹更像"操作型"计算,竖式更像"记录型"计算。
高中课本关联
① 完全平方公式(必修第一册)
。
这是初中就学过的公式,但很少有人想过:古人没有代数符号,他们是怎么把 展开的?孙子用文字一步步描述了这个过程——这正是数学史上"代数化"之前的典型做法:用语言描述代数结构,而不是用符号表达。
学生如果能亲手用算筹(或者用小棒代替)模拟一遍这个过程,会对完全平方公式有更深的体会。
② 乘法分配律(必修第一册)
。
孙子的算法本质上就是乘法分配律的多次应用。可以让学生思考:如果换成 ,孙子的"重置其位"该怎么操作?让学生用自己的话描述算法,而不是直接背"竖式",能更好地理解运算的本质。
③ 位值制与进制(选择性必修第三册 / 数学文化选修)
算筹的位置编码本质上是一种位值制。可以借此引入"为什么我们需要位值制"这个问题——如果没有位值制,同样的数字"8"没有位置信息,我们就无法区分 8、80、800。古希腊人就因为没有位值制,不得不发明一套复杂的记数系统。
位值制是数学史上最伟大的发明之一,它的功劳不亚于勾股定理。
教学启示
讲乘法竖式的时候,很多老师直接告诉学生"从个位开始乘,满几十进几"。但如果先展示一下孙子是怎么算的——用语言描述每一步操作——学生会发现:原来竖式的每一步都不是凭空来的,它们都有清晰的来源。
这种"溯源式"讲法有几个好处:
- 学生不再把竖式当成死记硬背的规则,而是理解成一种操作程序;
- 学生感受到"数学一直在进化"——今天的规则是古人一步步试出来的;
- 数学不再是冷冰冰的公式,而是一种"人类思考世界的工具"。
思考与拓展
-
动手试试:用牙签或小棒在桌面上模拟筹算过程,算一算 或 。看看你能不能按照孙子的步骤,一步一步正确地摆放和移动"算筹"。
-
拓展思考:孙子给出的算法适用于任意两位数的乘法。你能把这个算法推广到三位数乘法吗?比如计算 ,需要几步?每一步分别算什么?
-
历史探究:中国的九九乘法表和西方的九九乘法表有什么关系?为什么西方要到12世纪才通过阿拉伯人学到"印度-阿拉伯数字"和竖式乘法?这背后有什么文化交流的故事?
一句话总结
孙子算经的筹算乘法,用纯文字描述了一套完整的竖式运算程序——两千年前,中国人就已经在用"位值制"和"分配律"进行系统化的多位数乘法计算了。