∫π每天一道数学题
← 返回孙子算经
孙子算经 · 第 38 讲 · 2026-10-24 · 约 11 分钟

女子善织——中国算书里最早的等比数列

女子善织,日自倍,五日织通五尺,问日织几何?答曰初日一寸三十分之一十九,次日三寸三十一分之七……这道题的五日产量构成一条公比为 2 的等比数列:1.6寸、3.2寸、6.5寸、12.9寸、25.8寸。术文只说了九个字——「列衰副并,得三十一为法」——三十一正是 1+2+4+8+16。两千年前,中国人已经在用等比求和。

原典

今有女子善织,日自倍,五日织通五尺。问:日织几何?

答曰:初日织一寸三十一分寸之一十九,次日织三寸三十一分寸之七,次日织六寸三十一分寸之一十四,次日织一尺二寸三十一分寸之二十八,次日织二尺五寸三十一分寸之二十五。

术曰:各置列衰副,并得三十一为法,以五尺乘并者,各自为实,实如法而一,即得。

白话翻译

有位女子擅长织布,每天织的量是前一天的两倍,五天共织了五尺。问她每天各织多少?

答案是:第一天一寸又三十分之一……确切地说是 1 寸 + 1931\dfrac{19}{31} 寸;第二天 3 寸 + 731\dfrac{7}{31} 寸;第三天 6 寸 + 1431\dfrac{14}{31} 寸;第四天 1 尺 2 寸 + 2831\dfrac{28}{31} 寸;第五天 2 尺 5 寸 + 2531\dfrac{25}{31} 寸。

术文的算法是:把每天的「衰」(比例项)列出来相加,得三十一作为除数;再拿五尺分别乘各项作为被除数,逐一相除即得。

这道题的关键在那个「三十一」:它不是随便来的,而是 1+2+4+8+161+2+4+8+16——五天倍增的所有比例项之和。理解了这个三十一,整道题就通了。

示意图

女子善织:五日倍增,比例为 1:2:4:8:16

图:比例项 1、2、4、8、16 之和为 31;五尺按 31 份分配,日自倍 → 1.61、3.23、6.45、12.90、25.81 寸

古人的算法

术文只给了九个字的主干,但逻辑完整。

第一步,列衰。 每天的量是前一天的两倍,所以比例是

1:2:4:8:161 : 2 : 4 : 8 : 16

第二步,副并得法。

1+2+4+8+16=311 + 2 + 4 + 8 + 16 = 31

这个 31 就是除数(法)。

第三步,五尺乘各自为实,实如法而一。

设第一天织 xx 寸,则五天共织

x(1+2+4+8+16)=31xx(1 + 2 + 4 + 8 + 16) = 31x

总量是 5 尺 = 50 寸,所以

31x=50⟹x=5031 寸31x = 50 \quad \Longrightarrow \quad x = \frac{50}{31}\ \text{寸}

于是五天分别是:

5031,10031,20031,40031,80031 寸\frac{50}{31}, \quad \frac{100}{31}, \quad \frac{200}{31}, \quad \frac{400}{31}, \quad \frac{800}{31}\ \text{寸}

换成「寸又三十几分之几」的古代形式:

  • 第一天:5031=1\dfrac{50}{31} = 1 寸 1931\dfrac{19}{31}(因为 50=31+1950 = 31 + 19)
  • 第二天:10031=3\dfrac{100}{31} = 3 寸 731\dfrac{7}{31}(100=3×31+7100 = 3 \times 31 + 7)
  • 第三天:20031=6\dfrac{200}{31} = 6 寸 1431\dfrac{14}{31}(200=6×31+14200 = 6 \times 31 + 14)
  • 第四天:40031=12\dfrac{400}{31} = 12 寸 2831\dfrac{28}{31}(400=12×31+28400 = 12 \times 31 + 28)——12 寸即 1 尺 2 寸
  • 第五天:80031=25\dfrac{800}{31} = 25 寸 2531\dfrac{25}{31}(800=25×31+25800 = 25 \times 31 + 25)——25 寸即 2 尺 5 寸

与答曰逐字吻合。验算总和:

50+100+200+400+80031=155031=50 寸=5 尺\frac{50+100+200+400+800}{31} = \frac{1550}{31} = 50\ \text{寸} = 5\ \text{尺}

正好是题目所给的总量。

现代数学视角

这是首项为 xx、公比 q=2q = 2、项数 n=5n = 5 的等比数列求和。

Sn=x⋅qn−1q−1=x⋅25−12−1=31xS_n = x \cdot \frac{q^n - 1}{q - 1} = x \cdot \frac{2^5 - 1}{2 - 1} = 31x

已知 S5=50S_5 = 50 寸,所以 x=5031x = \dfrac{50}{31}。

术文的「副并得三十一」,正是 25−12−1=31\dfrac{2^5-1}{2-1} = 31 这个等比求和因子。古人没写过这个公式,但他们在每一道「衰分」题里都在用它。把「列衰相加」变成自觉的公式,还要等到后世;但在操作层面,中国算家早就熟练掌握了。

为什么总量是整数而各项是分数:25−1=312^5 - 1 = 31 是质数,且不整除 50,所以首项必然是分数。古人坦然接受分数答案——他们不为「好看」而改数。这也解释了为什么答曰全是「××寸三十一分之几」:不是复杂,是诚实的答案。

「日自倍」有多快:第五天是 25.8 寸,是第一天 1.6 寸的 16 倍。若继续下去,第 10 天就是 50×25≈160050 \times 2^{5} \approx 1600 寸(约 16 尺),第 30 天更是天文数字。数学上古率增长如此,现实里织工不可能做到——这正是数学模型与现实的区别。第 68 讲「九堤递乘」讲的是同一件事,可以对照。

高中课本关联

等比数列:通项 an=a1qn−1a_n = a_1 q^{n-1}、前 nn 项和 Sn=a1(qn−1)q−1S_n = \dfrac{a_1(q^n-1)}{q-1}。本题是已知 SnS_n、qq、nn 求 a1a_1 的完整范例,且 SnS_n 的因子 31 与 qn−1q^n-1 直接对应。

方程的分数解:5031\dfrac{50}{31}、80031\dfrac{800}{31}。训练学生接受分数答案——数学的答案不总是整数,「好看」不是判据。

与实际的差距:可以让学生画一张「日自倍」前 10 天的产量曲线,讨论它何时会超出织布机物理极限或人的体力极限,从而理解指数模型的适用边界。这与生物学的细胞分裂、金融学的复利是同一话题。

古算的一题多解:本题既能用「列衰相加」(古法),也能用通项公式(今法)。两种方法列出来对比,学生能体会到数学表述的演进。

思考与拓展

  1. 算一算:列衰 1,2,4,8,161,2,4,8,16,和为 31;50÷3150 \div 31 得首项;依次乘 2 得五天产量;再把五个分数加起来验算等于 50 寸。

  2. 用公式:用 S5=a1(25−1)2−1=31a1=50S_5 = \dfrac{a_1(2^5-1)}{2-1} = 31a_1 = 50 解出 a1a_1,验证与古法一致。说明 25−12^5 - 1 与「副并得三十一」的关系。

  3. 改天数:若改为「日自倍,七日织通十尺」,问首日织多少?(提示:1+2+⋯+64=1271+2+\cdots+64 = 127,1010 尺 =100= 100 寸,答案分母是 127。)

  4. 改公比:若「日自三倍,四日织通四十寸」,比例项之和是多少?首日多少寸?(提示:1+3+9+27=401+3+9+27 = 40。)

  5. 现实检验:按本题速度,第几天日产量会超过一匹布(约 4 丈 = 40 尺 = 400 寸)?这一天织出来的布,五天能织多少?讨论「日自倍」在现实中的可行性。

一句话总结

1+2+4+8+16=31,五尺除以三十一——九个字的术文背后,是一千五百年前就熟练运用的等比数列求和。

— Y. · 2026-10-24