佚名的邀请
佚名的邀请
翻开任何一册《九章算术》的现代排印本,第一眼看见的往往不是算题,而是一个空缺:扉页上写着的"作者"二字后面,是一片沉默。张苍没有署名,刘歆没有署名,最后为它写下最精彩注释的刘徽,也没有在正文里署过自己的名字。再翻到卷末,刘徽的《九章算术注原序》才以一篇独立文字的形式出现,与正文隔着一层纸。两千年来,人们无数次捧起这部书,也无数次试图为它找到一位"真正的作者",可每一次寻找都落空:它是一个没有作者的文本,或者说,它是一个由无数位读者共同喂养出来的活物。
这是《九章算术》留给当代读者的第一道谜。一部佚名的书,靠什么在一千多年里始终没被取代?一部连作者都说不清的书,凭什么值得受过现代数学训练的我们重新翻开?答案并不藏在某一个天才的笔下,而藏在文本本身那套反复被抄写、被注释、被重新编排的物质形态里,藏在它的编纂者那一条始终没有断过的传承链里,藏在它每一道题固定不变的句式里,也藏在它从"方田"到"勾股"九章依次抬升的认知阶梯里。本章要做的事情,是和读者一起回到这本书诞生的现场,回到它被一寸一寸长出来的全过程,让这部佚名的书主动开口说话。
回到文本的物质形态:竹简、纸卷与注疏合刻本
要理解《九章算术》的力量,必须先承认一件事:我们今天见到的每一本《九章》,都不是原貌,而是一层层被包装过的文本。包装得越厚,作者的影子就越淡,读者的痕迹就越重。
最古老的物质形态,是战国末年到西汉初年竹简上的那些题。这一时期能确认的竹简算书不止一部:1983 年湖北江陵张家山汉墓出土的《算数书》、2007 年清华大学入藏的战国楚简中也有零散算题,但《九章算术》这个书名对应的早期形态,依然要靠传世文献去追。司马迁在《史记》里转引过张苍整理过的《九章》,班固在《汉书·艺文志》里明确把"《九章算术》"列在"历算"类下,并给出九卷的规模。这意味着西汉中后期,这部书已经以"九卷本"的面貌流通,而它流通的载体,是写在竹简和缣帛上的——竹简一卷写不了多少字,九卷意味着大约四千到五千枚简,按当时惯例卷成一卷一卷的"篇"。
纸出现以后,《九章》的物质形态发生了一次大转变。东汉末年造纸术成熟,到了魏晋南北朝,几乎所有重要的数学文本都被抄在了纸上。纸的好处是容量大、成本低,于是读者开始在书页边缘写注解——这就是注释本的出现。刘徽的《九章算术注》,写于魏景元四年(公元 263 年),是现存最早也是最完整的注本。刘徽注并不是写在另一本书里,而是直接写在《九章》正文旁边,把原题、演算草稿、几何图示混排在一起。我们今天能见到的最早《九章》祖本——南宋鲍浣之刻本(1227 年),底本是北宋元丰七年(1084 年)秘书省刻本,再往上追溯到唐代的算学馆本,再往上是李淳风等人在唐显庆元年(656 年)奉敕重新整理的注疏合刻本。也就是说,从公元 656 年起,《九章》就被官方做成了"原文 + 刘徽注 + 李淳风等注释 + 附图"四合一的形态印行。
注疏合刻本的出现,是《九章》物质史上的一次决定性事件。原本以为读懂原文的读者,从此被迫同时面对四位以上的"说书人"。张苍讲过的话、刘歆校过的次序、刘徽补的图与证明、李淳风的按语,全部被压进了同一页竹简或同一张纸。这种压层有几个直接后果:
第一,作者被稀释。张苍原本可能是最初的整理者,可在注疏合刻本里,他的名字只出现在一行小字的校勘记中;刘徽写出了全书最有分量的注释,但他仍以"注"的身份出现,不能与正文并列;李淳风的按语甚至被缩到几行,夹在刘徽的长段证明之后。结果是,无论多么重要的注释者,都只能在文本里做配角。
第二,文本获得了叠加性的稳定性。如果只有一个版本,《九章》早就在战火、虫蛀、抄写讹误中走样得不成样子。可一旦注疏合刻成型,每一个抄写者、刻工都必须同时忠实复刻原题、刘注、李按三件事,偶然的改动就更容易被识破。这让《九章》在物质上变得极其坚韧。
第三,文本获得了二次生长的可能。后世的李冶、秦九韶、朱世杰、程大位、梅文鼎,无一不是在"刘徽注 + 李淳风按"这一层之上继续生长。他们的工作不是另起炉灶,而是往这部已经被压成纸砖的书里,再压进一层自己的注。这种纸砖越压越厚,最后呈现给清代藏书楼的《九章》,已经是横跨一千五百年的合著。
回到这本书的第一个方法,就是承认它从来都不是一本书,而是一座纸砖——一层张苍,一层刘歆,一层刘徽,一层李淳风,再一层李冶、秦九韶、朱世杰。这些名字加在一起,不是作者的集合,而是读者链条的沉积。
回到编纂者:作者之空与读者之链
《九章》的"作者之空",不是文字意义上的失名,而是文化意义上的让位。中国早期的数学文本大多托名或集体编纂,《九章》走的恰好是后者这条路。
西汉初年的张苍,是第一位对《九章》动过手的人。司马迁在《史记·张丞相列传》里写:"苍尤长于算学,故自著书,无所不窥。"可张苍所做的"整理",并不是从头写作,而是把当时已经流传的若干算书删订归类,凑成九卷。这是一种典型的"编者"工作——你不能说他写了《九章》,但你也不能说他没写,因为他定下了九卷的框架与次序。
耿寿昌的工作是续编。《汉书》记载,耿寿昌"以善算为史",在西汉宣帝时把《九章》从九卷扩为更细密的分类,并增加了若干粮食、均输类题目。耿寿昌本人又是当时最关键的均输—输粟政策的执行者,这等于让《九章》直接卷入了帝国财政运算的真实场景。
刘歆的贡献是校勘与定型。西汉末年刘歆领衔校理群书,《九章》在他手里被重新抄录、分篇、定次序。九章的次序基本沿用至今,从"方田"到"勾股",是刘歆团队的遗产。到了东汉,《九章》被列为"算经十书"之首,成为官方数学教育的基础读物。
从这一线索看,张苍、耿寿昌、刘歆,都是"前文本时代"的编纂者,他们决定的是骨架。可真正让《九章》具有数学性的,是从刘徽开始的读者群。刘徽在《九章算术注原序》里写得很明白:"事类相推,各有攸归,故枝条虽分而同本干者,知发其一端而已。"他把九章当成一棵树,主干是"算之通法",枝条是各章的具体题目。这是典型的读者姿态:我没有在写新书,我只是在替前人把没说透的话说出来。
刘徽之后,读者群进一步壮大。唐代算学馆里有李淳风、甄鸾等人为《九章》做注疏;北宋贾宪在《九章》的基础上抽出"开方作法本源",引出增乘开方法;南宋秦九韶把《九章》"方程"章的算法推广成一般性的一次同余问题解法,写成《数书九章》;元代李冶用《九章》的"勾股"章思路去研究天元术,写出《测圆海镜》《益古演段》;明代程大位把《九章》"粟米"章的"今有术"抽出来,作为商用算术的核心方法,写成《算法统宗》;清代梅文鼎又把"勾股"章与西方传来的三角学对接,写出《勾股举隅》。
这条读者链条有几个共同特征。第一,没有人取代作者——他们从来不把自己当作《九章》的对立面,而是当作它的延伸。第二,算法在链条中不断被提炼——"方程"章里的矩阵式线性方程组,被秦九韶推广成任意维数、任意系数的一般方法。第三,问题类型保持稳定——田野丈量、粮食兑换、工程体积、远距均摊、盈亏互补、联立方程、勾股测望,这七类问题从战国到清末几乎没有离开过中国数学的视野。
理解这一条链,才能理解《九章》的真正身份:它不是某一个人的杰作,而是一种持续生长的写作范式;它的作者不是一个名字,而是一整套读书人的共同体。这个共同体不是由地理与师门连起来的,而是由文本本身连起来的——所有这些人,拿起的第一本书都是《九章》。
回到问题的形式:今有—术曰—答曰的书写范式
《九章》最容易被现代读者忽视、却最决定它性格的特征,是它每一道题几乎都长成同一个样子。请随手翻一卷:
> 今有田广十二步,从田十四步。问为田几何? > 答曰:一百六十八步。 > 又有田广十二步,从田十步、四分步之一。问为田几何? > 术曰:广从步数相乘得积步。
这套"今有—答曰—术曰"(有时"术曰"出现在"答曰"之前,依章节体例而定)的三段式,构成了《九章》全部 246 道题的标准脸。这张脸看似呆板,却暗藏了一整套关于数学叙事的规矩。
第一段,"今有"句。这一句永远以"今有"开头,相当于现代题干的"已知"。它把现实世界的一次测量、一次交换、一次分配压缩成一个命题。读者一读"今有",就立刻明白:这不是抽象的数学题,而是一个被召唤出的"现在情境"。"今有"二字看似平凡,实则是中国算书对"题设"的命名系统。
第二段,"术曰"句(在不同章节里有"里田术曰"、"均输术曰"、"方程术曰"等变体)。这是算法的出场。术,是中国数学对"算法"的专有名词,比英文 algorithm 更早、更朴素。"术曰"二字意味着从此处起,接下来的文字不是题设,而是动作——乘、除、平方、开方、约分、合分、方程术。算法一旦被写出来,就脱离了原题,具有了可移植性:同一术可以套到不同的"今有"上,这正是中国数学走向一般化的钥匙。
第三段,"答曰"句。它给出最终数字,关闭本题。一个题目从"今有"到"答曰",是一个闭环;从"术曰"到下一个"今有",是算法的二次发动。这种"题—术—答"循环,本质上是把数学知识编码为一种可重复使用的脚本。
为了说明这套范式为什么值得专门讨论,不妨以《九章》"方田"章第一题为例做一次逐步拆解。
原题:今有田广十二步,从田十四步。问为田几何?
第一步:拆题。"广"是宽,"从"是纵(古"纵"通"从"),"步"是长度单位。题目给出两个数,求的是田的面积。这里田被假设为长方形。
第二步:找术。方田章第一术:"术曰:广从相乘得积步。"这是算法的名称,可被简化为"广×从 = 积步"。
第三步:代术。把"十二步"代入广,"十四步"代入从,得 12×14 = 168。
第四步:得答。答曰:一百六十八步。
这是最简单的"今有—术—答"。再看"粟米"章一道稍复杂的题:
> 今有粟一十斗,欲为粝米。问得几何? > 答曰:六斗。 > 术曰:以粟求粝米,三之五而一。
这里的"三之五而一"看上去像咒语,意思是把粟的斗数乘以 3 再除以 5。它对应的现代算式是 $V_{\text{粝米}} = \frac{3}{5} V_{\text{粟}}$。但中国数学家不说"乘以三分之五",而说"三之五而一"——分子在前,分母在后,再"而一"表示归一。这是中国算书独有的句法节奏。
把"今有—术曰—答曰"这套范式与现代欧几里得式的"定义—公理—命题—证明"对照,可以看出两种完全不同的数学叙事传统。欧式传统把数学当成真理的链条,每一步都需要证明;中国传统把数学当成可调度的算具,每一步都给出可执行的算法。前者追求"为什么这样算",后者追求"按什么步子算"。
这套范式直接影响了中国数学后来的几乎所有表达方式。祖冲之的圆周率记为"以圆径一亿为率,则圆周盈数三亿一千五百九十二步六分步之一,肭数三亿一千五百九十二步八分步之五",本质仍是"今有—术—答"的三段式。宋元数学家笔下的天元术、地元术、人元术,看似神秘,但只要在每一道题里找出"今有"和"术曰",整本书立刻可解。明清商用算术的口诀化(如"一退六二五"指一两等于零点六二五两)也直接源于这套范式。
可以说,"今有—术曰—答曰"是中国数学最稳固的形式骨架,从战国到清末几乎没变过。要找中华数学的"基因",这就是最清晰的一条链。
九章的结构语义:从方田到勾股的认知攀升
九章的次序并不是随手排列的,它本身就是一份被精心编辑过的认知地图。把九章主题排列起来,可以看到一条从大地丈量向天空测望攀升的清晰阶梯。
下面这张概念图把这九章按主题的认知层级串起来,让读者一眼看见全书结构的纵深:
```mermaid flowchart TD A["方田<br/>丈量大地"] --> B["粟米<br/>互换粮谷"] B --> C["衰分<br/>比例分配"] C --> D["少广<br/>反推方圆"] D --> E["商功<br/>立体体积"] E --> F["均输<br/>远距均摊"] F --> G["盈不足<br/>盈亏互补"] G --> H["方程<br/>联立求解"] H --> I["勾股<br/>测望宇宙"] ```
方田是九章的起点。它处理的是土地丈量:长方形、三角形、梯形、圆、弧田、环田。一块地有了形状,数学的"形"便诞生了。这一章里没有证明,只有术,但所有术的起点都是一个具体可触的田垄。
粟米是交换。它把方田所丈量的"产出"变成"可换物",从而引入比例。粟米章的"今有术"是中国古代最重要的算法原型之一,它被后世改写成"鸡兔同笼"、"按比分配"、"今有某物求折合"等无数种变体。在粟米章,数学的对象从"形"过渡到"率"。
衰分是分配的进一步细化。它要求按等级、按人数、按比例分摊,是粟米章的比例术在人事上的延伸。衰分章里出现了"列衰"——一列比例数——这一概念直接通向后来宋元时代的"招差法"。
少广是方田的反问题。给定面积,反推边长、半径,从而必须引入开平方、开立方。少广章给出了世界上最早的一般分数结果方法,比欧洲同类方法早一千多年。这里开始出现对"无理"边长的具体处理,"以面定方"标志着中国几何代数化的关键一步。
商功是三维。它把方田的平面问题推广为土方、堤坝、仓窖、城墙的体积计算。商功章里有著名的"刍童术"(梯形截面长方体的体积公式)和"圆垛术"。这一章标志着中国数学从二维走向三维的转折。
均输是行政数学。它把商功的"工程量"扩展到"路途 × 负载 × 人数 × 时间"的复合计算,本质是带有线性约束的资源调度。均输章里的"均输术"直接为西汉帝国服务,是数学与国家治理的真正合流。
盈不足是经济的不确定性。它处理"不知盈亏但可试"的问题——例如一个人买东西,若每人出八则多三,每人出七则少四,问多少人、多少钱。这是世界上最早的"假设法"(false position)系统。盈不足章后来传到中世纪欧洲,被阿拉伯人命名为"hisāb al-khāṭaʾayn",再传到拉丁世界,成为文艺复兴以后代数课本的标配。
方程是联立求解。它把多个未知数、多个等式组织成"方程",即矩阵式的线性方程组。这一章是中国对世界数学最大的贡献之一——它给出了用矩阵消元法解任意维线性方程组的完整算法,比欧洲同类方法早一千五百多年。
勾股是九章的终点,也是全书的高峰。它把"方程"章里的代数力量用到几何测望上:测山高、测谷深、测城远、测井口直径,乃至测日高。勾股章最后一题给出"以日下为勾,日高为股,勾股各自乘并而开方除之,得邪至日",这是世界上最早的测日公式。它处理的不是大地上的尺寸,而是宇宙的尺度。
从方田到勾股,是一条从脚下到头顶的认知线:先有形,再有率,再有方程,最后有宇宙。这是一个从小农经济所能触发的最朴素测量到帝国官僚所需的最复杂代数,再到天文测望的整套数学阶梯。它不是按抽象程度排列的,而是按问题情境的真实复杂度排列的。这一点,是《九章》最不像现代数学教科书、也最值得现代读者深思的地方。
回到文本的处境:十九世纪的重新发现与二十一世纪的呼唤
《九章》在它的诞生期到清代中叶,并没有离开过中国读书人的视野。但它的国际地位,在十九世纪发生了根本变化。
第一波重新发现来自欧洲。1852 年,英国汉学家伟烈亚力(Alexander Wylie)在《北华捷报》上发表《中国算书摘录》,第一次把《九章算术》的若干题目系统介绍给西方。1872 年,法国学者埃米尔·毕欧(Émile Biot)在《亚洲杂志》上把若干题目译成法文。1880 年,德国人 Hermann Hankel 在《代数通史》里给《九章》专门一节,称刘徽注为"中国数学史的高峰之一"。到了 1913 年,日本数学史家三上义夫在《中国数学史》里直接宣称:"中国是代数学真正的发源地,《九章算术》是比 Diophantus《算术》更早、更系统的代数学。"这句话从此被反复引用。
第二波重新发现来自本土。清末民初,一批接受过现代数学训练的中国学者回到《九章》里找根源。最有代表性的是钱宝琮,他在 1921 年发表《中国算学史》初稿,把《九章》的每一章都放进现代数学分类里重新解读。他提出的论断至今仍被广泛沿用:"《九章算术》是中国古代数学形成的标志。"李俨则在 1928 年开始辑校《九章算术》的所有已知版本,编成《中国古代算学史料》。他们的工作,使得"重读《九章》"成为二十世纪中国数学史研究的中心任务。
第三波——也就是我们今天所在的这一波——来自算法时代。当代人工智能、大数据、数值优化、密码学的核心算法,有相当一部分的祖先可以追溯到《九章》的"盈不足术"(试探法)、"方程术"(线性方程组消元)、"勾股术"(距离公式)乃至"今有术"(按比例换算)。这种血缘关系不是比喻,而是结构上的同构。1990 年代以后,钱宝琮主编《中国数学史大系》重新出版,钱穆宾、沈康身、郭书春等学者把《九章》的每一术逐条还原成现代算法表达,让这本佚名的书再次以算法的姿态被需要。
二十一世纪的算法时代呼唤《九章》,呼唤的不是它的史学价值,而是它处理"现实—算法—答案"的方式。这种方式直到今天仍然是工程实践的底座。当我们把一道题写进 Python 脚本时,背后仍然是"题设—函数—返回值"的三段式,与"今有—术曰—答曰"的古老句式惊人地相似。
重新发现史告诉我们,《九章》的力量并不依赖某一个时代。它每被一代人重新打开,就能找到那一代的读者。这正是匿名文本的独特优势:它不需要作者为自己的文本辩护,因为文本里沉淀着太多读者的声音。
本书的阅读契约:与匿名者共处
《九章》已经解释了它的来历、它的编纂者、它的形式、它的结构和它在近代的旅程。剩下的问题是:二十一世纪的读者应当以什么姿态进入这部文本?
最常见的姿态是"翻译"。读者打开《九章》,立刻把它翻译成现代数学语言:把"今有粟一十斗"翻译成"已知体积为 10 斗的粟",把"三之五而一"翻译成"乘以 3/5",把"方程术"翻译成"高斯消元法"。这种翻译是有意义的,但它会替文本完成本该由读者自己完成的思考。
本书提议的另一种姿态,是共处。不要急于替《九章》说话,而是让《九章》先说。我们要做的事情,是把注释者们一代一代的层叠展示出来,让读者看见张苍的删订、刘歆的校次、刘徽的图、李淳风的按、李冶的方程、秦九韶的大衍。这样读者拿起的就不是一本"翻译成现代汉语的古代题集",而是一份横跨一千五百年的纸砖。
共处意味着不把《九章》当成死去的遗产,而是把它当成一种仍在生长的算法语言。我们要做的,是让当代的算法语言与古老的"今有—术曰—答曰"对话。一旦完成这种对话,读者就会发现:所谓"中华数学的来路",并不是博物馆里的一串朝代,而是今天还在每一段 Python 代码里悄悄呼吸的那种节奏。
进入下一章之前,请先记住几件事。第一,《九章》的作者是空的,它的读者是满的;第二,它的问题形式稳定到近乎化石,但化石里埋着一整套尚在工作的算法;第三,它的九章不是按抽象程度排列的,而是按真实世界的复杂度排列的;第四,它在最需要它的时代被重新呼唤,过去两次,未来还会有更多次。带着这四件事,第二章我们将走进《九章》的第一片田——方田,去看看一块地是怎么被一群没有署名的古代数学家,一步一步地算成方、算成圆、算成弧的。