九章其书
第 1 章 九章其书
《九章算术》这个名字,多数人在中学课本里见过一次,然后忘掉。它通常出现在"中国古代数学成就"那一节,配一张模糊的竹简图,旁边写一行注:"成书于东汉,汇集了战国至秦汉的数学成果。"这是一句正确的废话。它没告诉你这本书里有 246 道具体题目,没告诉你某道方程比欧洲早了一千五百年,也没告诉你两千年前的某位粮仓管理员,真的拿着一把小竹棍在木盘上算过这道题。
这一章要解决一个更基础的问题:《九章算术》是一部怎样的书?它为什么能在两千年里被反复抄写、注解、修订,今天一个高中生翻开影印本,依然能照着上面的步骤把答案算出来?它不是圣人的语录,不是哲学家的辩论集。它是一本工具手册,被一群没有留下名字的基层官吏反复使用、修订、传承。
我们沿着三条线走。第一条是职业线:古代中国谁在"算",数学在国家机器里到底做什么用;第二条是文本线:这部书是怎么从"九数"两个字变成今天看到的 246 题的;第三条是工具线:用什么算,怎么算,怎么摆出那些看起来像竖线和横线的小棍子。
一、"算"这门手艺:被忽略的古代职业
现代人提到数学家,脑海里浮起的形象通常是孤独的天才、大学的教授、或者某个深夜对着白板发呆的人。但《九章算术》成书的那个时代,没有这种职业。西汉初年,国家机构里和数字打交道的人,分散在十几种职位里,他们各有名字:上计吏,负责把郡国的户口、田亩、赋税数据汇编成册;掾史,地方官的助手,分管钱粮账目;仓曹,粮仓管理员;市掾,市场交易记录者;算术掾,听起来最直接,但只是众多掾属之一。
这些职位共同构成了一个庞大的"算"的体系。它的规模比今天想象的大得多。西汉平帝元始二年(公元 2 年),朝廷做过一次人口普查,登记了 5959 万多人。为了把这五千多万人按年龄、性别、资产、户籍分类登记,再换算成应缴的赋税、应服的徭役,需要多少人?光长安城里,就有几十家"计簿"机构常年运作。
数学在这种国家机器里没有独立的地位。它嵌在天文、历法、税赋、营造之中。天文学家需要算三角和球面,来预测日月食;历法家需要算回归年和朔望月,来编制年号和月份;税吏需要算田亩和人口,来分摊徭役;营造官需要算体积和勾股,来设计宫殿和水利。每一项业务都需要数学,但数学本身不被当作一门独立的学问。
这种状况在《周礼》里留下了痕迹。《周礼·地官·保氏》提到贵族子弟要学"六艺",其中的"数"是六艺之一,但不是单独的学科,而是和"礼、乐、射、御、书"并列的通识教育内容。具体到数学知识,《周礼》提到了"九数"这个概念。后世学者(如郑玄)把九数具体解释为方田、粟米、差分、少广、商功、均输、盈不足、方程、勾股九个分支,几乎对应了《九章算术》九章的标题。
这意味着先秦时期的国家,已经把数学知识系统化、模块化了,分成了九个应用方向,每个方向对应一种行政需求。方田管田亩测量,粟米管粮食互换的比例,差分管按等级分配物资,少广管已知面积反求边长,商功管工程土方,均输管远程运输的负载平衡,盈不足管盈亏问题,方程管多元线性方程组,勾股管勾股定理及其应用。
这就是《九章算术》成书前,它的知识框架已经在国家机构里存在了几百年。这本书不是一个天才在书斋里构思出来的,它是几代基层官吏在实际问题中反复求解、反复优化的结果。
举一个具体的例子。《九章》第三章"衰分"的第一题是这样的:
> 今有大夫、不更、簪袅、上造、公士,凡五人,共猎得五鹿。欲以爵次分之,问各得几何? > 术曰:列置爵数,以五鹿乘而并之,为实。以爵数相加为法。实如法得一。
这道题的意思是:五个爵位不同的贵族一起打猎,得了五头鹿,要按爵位高低分配。大夫、不更、簪袅、上造、公士五个爵位,对应的"爵数"分别是 5、4、3、2、1。算法是:把爵数列出来,把鹿的数量和爵数相乘后加起来做分子,把爵数相加做分母,再按各人的爵数比例分配。
具体计算:$5+4+3+2+1 = 15$,这是"法"。然后把 5 头鹿分别乘以各人的爵数:$5\times5=25$,$5\times4=20$,$5\times3=15$,$5\times2=10$,$5\times1=5$。把这五个结果加起来:$25+20+15+10+5 = 75$。$75 \div 15 = 5$。然后按比例分配:大夫得 $5 \times 5/15 = 5/3$ 头,不更得 $4/3$ 头,簪袅得 1 头,上造得 $2/3$ 头,公士得 $1/3$ 头。
这道题用到的算法,今天叫"按比例分配",或者更技术性地说,叫"加权平均的反向应用"。它的现实背景非常具体:贵族按等级分配猎物。这种分配方式在战国时期是常见的政治技术,按爵位分配反映了等级秩序的稳定性,比绝对平均分配更被当时的国家机器所偏好。
所以,理解《九章》的第一把钥匙是:不要把它当成一本"数学书",要把它当成一本"官吏工作手册"。它里面没有定理证明,只有"术曰"(方法是这样的)。每一种术,都是一类工作的标准操作程序。这些操作程序不是凭空设计的,是从真实工作中提炼出来的。
古代中国基层官吏的工作场景,决定了这本书必须是实用的、可操作的、可以被不识字的助手照着做的。所以它的题目给出具体数字(十五步、广十二步),给出具体情境(田地、粮仓、买卖),给出标准答案(术曰)。它不要求读者理解原理,只要求读者照着步骤做出正确答案。
这套逻辑在两千年里几乎是稳定的。直到清末引入西方现代数学教育,《九章》才真正退出了工作场景,成为历史研究的对象。
二、千年累积:从"九数"到《九章》定型本
理解了数学在古代中国是干什么用的,接下来要解决一个文本问题:今天我们看到的《九章算术》,是怎么从《周礼》里的一句"九数"变成 246 道题的?
这个过程跨越了大约一千年,从战国晚期到北宋初年。期间这部书经历了几次定型、几次散佚、几次重编。主要节点可以用下面这张图梳理:
```mermaid flowchart TD A["战国晚期 '九数' 知识体系 散见于各诸侯国实务"] --> B["秦汉之际 文本初步汇编"] B --> C["西汉 张苍 耿寿昌 编订"] C --> D["东汉 定型本 '九章算术'"] D --> E["三国魏 刘徽 注九章算术 263年"] E --> F["唐 李淳风 重新整理 约656年"] F --> G["北宋 贾宪 细草 约1050年"] G --> H["南宋 杨辉 详解 1261年"] H --> I["明清 各种坊刻本及四库全书本"] I --> J["清末以来 现代整理本"] ```
这张图里,每一步的"添加"比看上去更重要。每一次重编,都不是简单的抄写,而是解题方法的更新、题目数量的增减、注解的累积。到南宋杨辉的版本,文本已经和东汉定型本有了不小的差异。
最关键的两个节点是刘徽注和贾宪细草。
刘徽(约 225 年—295 年)是魏晋时期的数学家,他在 263 年为《九章》写了完整的注解。这个注解不是翻译,不是简化,是真正意义上的数学工作。他在注解里给出了"割圆术",用多边形逼近圆周率,得到了 $\pi \approx 3.1416$;他论证了"以面幂相与"的体积算法,给出了《九章》里没有的推导;他重新解释了一些题目,纠正了东汉定型本里的错误。
更重要的是,刘徽在注解里明确提出了数学证明的概念。他在"方田章"的"以田赋田"一题里写道:"乘分之术,当以母相乘为法,子相乘为实。"这是对分数乘法的形式化说明,是原则,不是步骤。这种把"为什么这样做"和"怎样做"区分开来的意识,是数学作为一门学科成熟的标志之一。
贾宪的"细草"比刘徽又晚七百多年,他在 11 世纪中期(多数学者认为在 1045—1050 年之间)为《九章》写了更细致的草算过程。"细草"的意思是"详细的草稿",就是把每一步计算的中间结果都写下来,让读者能跟着做。这种做法在杨辉的《详解九章算法》里得到继承。杨辉 1261 年的版本,把贾宪的工作、自己的注解、和各种历史版本综合在一起,成了今天学者研究《九章》文本流传的主要依据之一。
这部书在流传过程中曾经非常接近完全消失。隋唐之间的战乱,让许多藏书机构被毁,《九章》的抄本数量大幅减少。唐代国家藏书里,《九章》被归入"算经十书"之一,作为科举明算科的参考书。这意味着有专门的抄写员负责复制这部书,但每次抄写都是重新整理的机会,也可能是引入错误的机会。
到北宋,《九章》已经是古籍了。贾宪的细草是对这部古籍的现代数学解读,杨辉的详解是更全面的现代解读。但南宋以后,传统的筹算数学逐渐被珠算(算盘)取代,《九章》作为实用工具书的价值下降,更多地成为收藏和研究的对象。
清代乾隆年间编纂《四库全书》,《九章》被收入子部·天文算法类。这是清代官方版本,也是后来所有现代整理本的主要底本之一。清代学者戴震(1724—1777)对这部书进行了认真的校勘,他的校勘工作直接影响了《四库》本的质量。
到这里,这本书的"层累形成"过程清楚了:它不是某个人写成的,是几十代人接力完成的。每一代人都在前一代的基础上添加、修改、注解、删减。两千年里它的题目数量从最初的不到 100 题,到定型本的 246 题,再到后来的 260 多题(不同版本略有差异)。它的注解从无到有,从刘徽的注释到李淳风的整理到贾宪的细草到杨辉的详解,越积越厚。到南宋,这部书已经不是一部书,而是几部书的复合体。
但有一点始终没变:它的核心题目,仍然是战国到秦汉基层官吏在工作中真实面对的那些问题。
三、匿名传统:为什么数学著作常常没有作者名
讲到这里,有一个看起来奇怪的现象需要解释:《九章算术》的作者是谁?
答案是:不知道。不仅《九章》不知道,《孙子算经》不知道,《张丘建算经》不知道,《五曹算经》不知道,《缉古算经》也不知道。古代中国的大量数学著作,要么作者不详,要么只有传闻中的名字(比如孙子、张丘建),要么作者是这部书的注解者(如刘徽、杨辉),而不是原作者。
这种现象在古代中国的非文学作品中相当普遍。医学书、农书、天文书、历书,常常也找不到明确的作者。这和诗文、史传的情况形成鲜明对比。司马迁的《史记》、班固的《汉书》、李白的诗、苏轼的词,作者清清楚楚。
为什么数学著作要匿名?这里有几个相互交织的原因。
第一个原因是知识的性质。数学知识在古代是一种"技术性知识",它不是某个人的思想,而是几代人在实践中摸索出来的优化结果。当你发现一个田亩算法、一个比例分配方法、一个勾股测量方法时,这个方法并不因为你发现了它就成了你的私有财产。它是可以传授的、被验证的、被重复使用的。署名在这种知识传统里没有意义,正如今天我们不会说"勾股定理的发现者"是某个人,但会说"哥德巴赫猜想的提出者"是哥德巴赫。区别在于前者是经过严格证明的定理,后者是未被证明的猜想。
第二个原因是使用者的身份。这本书的主要使用者是基层官吏。他们在工作中使用这些算法,不需要知道是谁发明的,只需要知道怎么用。署名对他们的工作没有帮助,反而可能引起不必要的争议。比如某个官员偏好某种算法,把别的算法贬低为"非正统",这种争论在基层工作中是干扰。所以这本书在传播过程中,匿名是一种常态。
第三个原因是作者的自我认知。古代中国的知识分子中,从事数学研究的人常常不把数学当作自己的"学术成就"。他们更愿意以经学、史学、文学的成就立足。数学对他们而言是"小道",是工具,是技术,不是"道"。这种自我认知导致他们很少主动为数学著作署名。
对比一下诗文传统。诗歌是高度个人化的创作,李白的诗就是李白的,不是别的什么人的。署名对诗人来说极其重要,署名即品牌,署名即承认。但数学不是这样。数学是去个人化的,它追求的是普遍适用。
这并不意味着数学家没有个人贡献。刘徽的割圆术、贾宪的"开方作法本原图"、秦九韶的大衍总数术、李冶的"天元术",这些都是明确的个人成就。但这些成就往往不是在《九章》这种"集体工程"上署名,而是在自己的专著上署名。例如秦九韶的《数书九章》、李冶的《测圆海镜》、朱世杰的《四元玉鉴》,都是署名著作。
所以,《九章》的匿名传统,反映的是一类知识的特殊性质:它是实践性的、集体性的、工具性的。理解这一点,对于理解古代中国数学的整体特征非常关键。
四、算筹:被算盘遮蔽的运算工具
讲《九章》不讲解算筹,就像讲古希腊戏剧不讲剧场。我们今天听到"算",第一反应是"算盘"——那个木框里装着珠子、靠拨珠子运算的工具。但《九章》成书时没有算盘,也没有珠算。算盘是元末明初才普及的工具,《九章》的体系里完全没有珠算的影子。
汉代基层官吏用什么算?用算筹。
算筹是一组小棍子,通常是竹制、木制、骨制、象牙制,长度大约十几厘米,粗细类似今天的中性笔芯。操作时,把这些小棍子摆在一个平的表面上,可以是专门的"算筹盘"(一个画了格子的木板或金属盘),也可以是一张桌面、一块布。摆出数字,进行运算,得出结果,记录下来,擦掉,再摆下一个数字。
这听起来很简陋,但它的功能强大到可以完成加减乘除、分数运算、开方、解线性方程组。中国古代数学的大部分运算,都建立在这套系统之上。
算筹表示数字的关键技巧是"纵横交错"。具体规则:个位用纵式(竖着摆),十位用横式(横着摆),百位用纵式,千位用横式,以此类推,逢五位交替。
1 到 5 这五个数字用纵式表示,分别摆 1 到 5 根小棍,垂直排列:
```text 1 → | 2 → | | 3 → | | | 4 → | | | | 5 → | | | | | ```
6 到 9 不直接摆 6 到 9 根小棍(在筹算盘上摆六根棍子容易混乱),而是用"上一下五"的规则:上方横摆一根,下方纵摆五根,合起来是六:
```text 6 → ─ | | | | |
7 → ─ | | | | | |
8 → ─ ─ | | | | | |
9 → ─ ─ ─ | | | | | | ```
到了十位,规则反过来,所有数字都用横式。横式的 1 到 5 是横着摆 1 到 5 根,6 到 9 是上方纵摆一根、下方横摆五根:
```text 1 (十位) → ─ 2 (十位) → ═ 3 (十位) → ══ 4 (十位) → ═══ 5 (十位) → ════ 6 (十位) → | ════ 7 (十位) → | ═════ 8 (十位) → | | ═════ 9 (十位) → | | | ═════ ```
为什么这样设计?因为交替使用纵式和横式,可以让不同位数的数字看起来有明显区别,避免读数错误。如果个位是纵、十位也是纵,眼睛不容易分辨 23 和 32。但交替以后,视觉上一眼就能区分。
举几个具体例子。数字 1 用个位纵式的"1",即一根竖棍。数字 23 是十位 2 横式(两根横棍)、个位 3 纵式(三根竖棍),两个位之间留一点空隙。数字 168 是百位 1 纵式(一根竖棍)、十位 6(上方一横、下面五纵)、个位 8(上方二横、下面五纵)。数字 2024 是千位 2 横式(两根横棍)、百位 0(什么都不摆,但留位置)、十位 2 纵式(两根竖棍)、个位 4 纵式(四根竖棍)。
0 在筹算里不摆任何棍子,但要在对应的位置留出空间。如果某个位置是 0 而下一个位置不是 0,可以用一根空棍表示"这里有个零但不需要摆",但实际操作中通常直接留空。
用算筹做乘法比较繁琐,需要多层叠放。比如要算 12 × 14,过程大致是:先把被乘数 12 摆在筹算盘上,作为"实";然后把乘数 14 的每一位(上为 1,下为 4)依次和被乘数相乘,结果按对应位置叠加在"实"上;最后读出最终结果。
具体来说,先把 12 摆在中间位置(个位 2 纵式,十位 1 横式)。然后用 14 的个位 4,乘以 12 的每一位。$4 \times 2 = 8$,把 8 加到个位(个位原是 2,加 8 后是 10,进位 1 到十位)。$4 \times 1 = 4$,把 4 加到十位(十位原是 1,加 4 后是 5,再加进位 1 后是 6)。所以第一层处理后,筹算盘上是 60。
然后用 14 的十位 1(即"十",相当于乘以 10),乘以 12 的每一位,相当于把 12 左移一位变成 120,然后加到当前结果 60 上。个位贡献 0(不变),十位贡献 2(因为 $10 \times 2 = 20$,左移一位后十位是 2),百位贡献 1(因为 $10 \times 1 = 10$,左移一位后百位是 1)。叠加到 60 上:百位是 1,十位是 $6+2=8$,个位是 0。
最终结果:168。
这种算法的具体步骤在不同历史时期有变化,但基本逻辑一致。读者不需要现在完全掌握操作,但应该理解:用算筹做四则运算是可能的,而且不需要现代意义上的"做表格"或"列竖式",而是通过棍子的实际摆放和移动来完成。这是一种和现代纸笔运算完全不同的"具身"计算方式。
五、第一题:广十二步,从十四步
了解了算筹和文本背景,我们来亲手算一道《九章算术》的题目。这是方田章的第一题,也是全书的第一题:
> 今有田广十二步,从田十四步。问为田几何? > 术曰:以广从步数相乘得积步。
题目意思是:有一块田,宽十二步("广"指宽,"步"是长度单位,约合今 1.3 米),长十四步("从"指长),问这块田的面积是多少?
术(方法)说的是:把宽和长相乘。
$12 \times 14 = 168$
所以这块田的面积是 168 平方步。
用算筹怎么算?先把"实"(被乘数)12 摆出来:
```text ─ (十位的 1) | | (个位的 2) ```
然后用乘数 14 来乘。先用 14 的个位 4,乘以 12 的每一位。$4 \times 2 = 8$,把 8 加到个位(个位原是 2,加 8 后是 10,进位 1 到十位)。$4 \times 1 = 4$,把 4 加到十位(十位原是 1,加 4 后是 5,再加进位 1 后是 6)。所以第一遍乘法后,盘上是 60:
```text ─ ─ (十位的 6) (个位 0,留空) ```
再用 14 的十位 1(即"十",相当于乘以 10),乘以 12 的每一位,相当于把 12 左移一位变成 120,然后加到当前结果 60 上。个位是 $0 + 0 = 0$,十位是 $6 + 2 = 8$(因为 $10 \times 2 = 20$,左移一位后十位是 2),百位是 $0 + 1 = 1$(因为 $10 \times 1 = 10$,左移一位后百位是 1)。
最终结果:
```text | (百位的 1) ─ ─ (十位的 8) (个位 0) ```
读出来:168 平方步。
汉代的一亩等于 240 平方步。所以 168 平方步是多少亩?$1