先秦算学渊源
先秦算学渊源
理解《九章算术》的真正来历,不能从汉代写定的文本本身说起。这部著作之所以能够将二百四十六个问题分成九大类、给出系统化的解法,是因为它站在一个至少延续了一千五百年的算学传统之上。从殷商甲骨文中刻划的数列,到春秋战国时期诸子著述里若隐若现的数学讨论,再到《考工记》《左传》等典籍中具体的分数应用,先秦时期的中国已经发展出一套完整的记数系统和相当成熟的算术实践。《九章算术》的编纂者并非凭空创造,而是在这个深厚传统的基础上做了系统的整理与理论升华。
本章追溯的就是这条从甲骨文到《九章算术》的算学发展脉络。我们将依次考察三个核心问题:最早的汉字记数系统如何逐步演化出位值制的雏形?专门化的计算工具——算筹——是怎样形成并在日常生活中发挥作用的?在诸子百家争鸣的时代,学者们对数量关系本身有过哪些抽象层面的思考?最后,通过一个具体的考古案例,看看这些看似零散的发展如何在某个时间节点汇聚成形。
甲骨文数字体系与位值制萌芽
今天出土的殷商甲骨文为我们提供了现存最早的系统性汉字记数材料。从公元前十四世纪到公元前十一世纪,商代王室占卜活动中留下的契刻文字里,包含了一套完整的从一到万的数字表达。这套系统的基础是十进制结构:一、二、三、四、五、六、七、八、九,十,然后是十的倍数(二十、三十……九十),再之上是百、千、万。每个数量级都有独立的符号,这些符号在形态上保留了原始的契刻痕迹。
观察甲骨文数字的形体演变,可以发现一个值得注意的规律。一到四都是用同等的线条重复叠加来表示——一横是一,二横是二,三横是三,四横是四。但从五开始,符号不再简单重复,而是采用了更复杂的写法:五写作交叉形状或近似“X”的形态,六写作上方一个曲形加下方一横,七是带缺口的横划,八写作两撇相背,九呈现弯曲的勾形。十则是一个完整的竖画。这个从“五”开始的形体变化,并非随意约定,而是很可能反映了某种更早期的结绳记事或契刻记数的痕迹。
更重要的是,甲骨文数字中存在明确的位值制萌芽。以“一二三”为例,在不同的语境下,同样的符号可以表示个位数、十位数或百位数。当“一二三”纵向排列时,它们通常表示一百二十三;但当需要单独标记百位上的“一”时,甲骨文中会出现特殊的契刻位置约定。学者们对殷墟出土的甲骨进行了系统整理,发现商人在记录日期和祭品数量时,已经发展出一套约定俗成的位置规则:数字符号的垂直排列顺序对应数量级的大小,上方为高数量级,下方为低数量级。这种通过位置来确定数值大小的原则,正是位值制的核心思想。
河南安阳殷墟出土的编号为YH127的窖穴中,发现了超过一万七千片甲骨。其中有一片记录王室狩猎收获的卜辞,完整地保留了一个数字序列。这片甲骨(H11:85)记载了某次田猎中捕获的各类动物数量,包括“麋三百六十五”“兕二百五十”“狐三百二十”等。这组数据之所以重要,在于它展示了商人在实际记录中如何运用十进制和位置约定。三百六十五写作“三百六十□五”,其中百、十、个位的数字分别占据不同的位置空间,通过位置关系而非独立符号来区分数量级。这种记录方式在殷商时期的甲骨文中反复出现,表明位值制的思维方式已经深入日常应用。
然而,必须指出的是,甲骨文数字体系中的位值制仍然是初步的、不完备的。商人在表达具体数量时,更常见的方式是写出每个数量级的完整数字(如三百六十五),而不是现代意义上的简写形式(如3×10²+6×10+5)。这两种方式的根本区别在于:前者仍然依赖数量级符号的逐一列举,后者才真正实现了用有限的数字符号和位置变化来表示任意数值。甲骨文的记数系统处于从“数量级并列”到“位置值压缩”的过渡阶段,这一过程在商代还没有完成。
进入周代以后,青铜器铭文中的数字记录进一步发展。西周中晚期的青铜器上开始出现更为紧凑的记数形式,例如将“二百八十”简写为“二八零”或者用特殊的合文形式表达。这种简写趋势逐步演化,到春秋战国时期,十进制位值制的表达方式已经相当成熟。湖北随州曾侯乙墓出土的青铜器上,有一处铭文记录了鼎的重量,使用的记数方式已经非常接近后世的位值制表达。这些考古证据表明,位值制在中国的发展是一个长达数百年的渐进过程,而非某一次突然的发明。
算筹的形制、材质与操作规范
如果说甲骨文数字解决的是“如何记录”的问题,那么算筹要解决的则是“如何计算”的问题。算筹是古代中国最重用的计算工具,它的出现标志着中国数学从记录阶段进入了实际的运算阶段。关于算筹的起源,文献记载和考古发现提供了相互印证的线索。《世本》记载“隶首作数”,《史记》提到“黄帝使羲和占日常仪臾戏占星官,隶首定数”,这些传说暗示算术工具的发明被归功于传说中的黄帝时代。虽然这些记载无法直接证实,但现代考古发现了早于汉代的实用算筹实物。
1978年,湖北随州曾侯乙墓出土了一批战国早期的算筹。这批算筹共六十二根,长约十二厘米,截面呈圆形,与文献记载中“长六寸”的尺度接近。算筹出土时被整齐地放置在墓室的一个角落,旁边还有用于放置算筹的竹简状器具,表明当时已有专门的算筹收纳制度。这是目前已知最早的算筹实物证据,将算筹的使用历史上推到公元前五世纪。
算筹的材质在不同地区和不同时期有所变化。北方地区常见用兽骨制作的算筹,南方地区则多用竹木。湖南长沙马王堆汉墓出土的算筹是竹质的,长约十三厘米,截面扁圆。山东临沂银雀山汉墓出土的算筹则是骨质,长度与马王堆相近但截面更圆。这些实物表明,算筹的标准化程度在不同地区可能存在差异,但基本形制已经相当统一。
算筹的计算操作遵循一套严格的规范,这套规范在后世被编入《孙子算经》《数术记遗》等著作,成为算学教育的核心内容。基本的操作规则可以概括为三个层面:
第一是纵横摆放规则。算筹表示数字时,采用“纵式”和“横式”两种基本摆法来表示一至九。纵式用竖立的算筹表示个位数字,横式用横置的算筹表示个位数字。具体而言,一在个位用纵式表示,在十位用横式表示;一在百位又用纵式,在千位又用横式,如此交替。这种“纵横相间”的规则是为了避免位数混淆——如果所有数量级都用同一种摆法,当多个算筹紧密排列时,相邻数量级的界限就难以分辨。纵横交替的规则确保了无论算筹排列多长,每个数量级的起止位置都能一目了然。
第二是空位表示规则。算筹用空位来表示零,这和后来印度-阿拉伯数字系统中用“0”表示空位的作用相同,但呈现方式完全不同。当某个数量级上没有数值时,相应位置空出来不放置算筹。例如,表示一百零五这个数字时,百位放置一根算筹,十位空置,个位放置五根算筹。这种表示方式要求计算者在操作时对位置有清晰的空间意识,任何一点疏忽都可能导致整个计算的失败。
第三是运算法则。算筹不仅用于记录数字,更重要的是执行各种运算。加法和减法通过增减相应位置的算筹完成;乘法和除法通过分组移动和重新排列算筹来实现;开平方和开立方则需要更复杂的分步操作。这些运算法则的具体步骤在《九章算术》中有详细记载,而它们的根源则在于先秦时期算筹使用实践中积累的经验。
算筹的摆放还需要平整的桌面或专门的计算板作为操作场所。文献中提到的“算席”“算案”可能就是这类辅助工具。计算时,算筹从收纳容器中取出,根据运算需要排列组合,完成后收回。整套操作流程强调的是手指的灵活性和空间的判断力,这与西方同期使用沙盘或手指进行计算的方式形成了有趣的对比。
值得注意的是,算筹的使用并非仅限于官方的天文历法或工程测量等专门领域。从战国到汉代的文献来看,算筹已经渗透到日常生活的多个方面。商人用算筹计算货物价格和交易盈亏,农民用算筹估算田亩面积和收获总量,官府用算筹核定赋税和劳役。这些实践为《九章算术》中大量与实际生活相关的数学问题提供了现实基础——书中的问题并非凭空编造,而是从真实的应用场景中提炼出来的。
《墨经》中的极限思想与形式逻辑萌芽
先秦诸子百家中,对数学基础问题作出最深入思考的是墨家。墨家学派的创始人是墨翟(约公元前470年—前391年),其思想被收入《墨子》一书。在这部著作中,《经上》《经下》《经说上》《经说下》四篇构成了一个独特的哲学体系,其中包含了对时间、空间、运动、因果等基本概念的精确定义。更重要的是,墨家在这里展示了运用形式逻辑进行推理的能力,这种能力被直接应用于对数学概念的讨论。
《墨经》中涉及数学论述的内容主要集中在关于“端”“有间”“间”等概念的讨论。“端”这个概念在《墨经》中的定义是:“端,体之无序而最前者也。”这句话的意思是,端是物体中没有任何秩序、处于最前端的点。这个定义实际上触及了几何学中的点这一基本概念。墨家将点定义为没有长度、宽度、高度的极端状态,这与欧几里得几何学中对点的定义“在空间中只有位置没有大小的存在”高度一致。更进一步,墨家讨论了“端”与“体”(三维物体)的关系,指出体的构成需要多个端的连接,从而暗示了“点动成线、线动成面、面动成体”的几何生成思想。
极限思想的雏形出现在《墨经》对“无穷”概念的讨论中。《经下》有一条说:“一少于二而多于五,说在建位。”这句话的意思是:一(在十位上)小于二(在个位上),但一(在百位上)却大于五(在个位上),这取决于数位。这段话表面上讨论的是位值制中数字的相对大小,实际上隐含了关于数量级的深刻认识——同一个符号“一”,在不同的位置上代表着完全不同的量级。这种认识为后来“无穷”概念的发展奠定了基础:当一个量的表达依赖于位置,而位置可以无限扩展时,就产生了“无穷大”和“无穷小”的可能性。
《墨经》对形式逻辑的运用更为系统。《经上》开篇就给出了一系列基本定义,如“故,所得而后成也”“体,分于兼也”“知,材也”等。这些定义的共同特征是使用“如果……那么……”的条件句式,明确区分了被定义项和定义项,为概念的精确化提供了范式。在数学中,概念的精确定义是理论体系的基石——《墨经》在这里展示的逻辑训练,为后世算学家建立数学命题体系提供了方法论参照。
墨家的逻辑思想还体现在对论证过程的要求上。《小取》篇系统论述了“辟”“侔”“援”“推”等论辩方法。“辟”是用同类事物进行比喻说明,“侔”是比较两个命题的结构相似性,“援”是援引对方的观点进行类比,“推”是通过已知推未知。这些方法在数学证明中都有对应的应用:类比说明用于引入新概念,比较结构用于验证命题的正确性,援引已知用于构建证明链条,归纳推理用于从特殊到一般的推广。虽然墨家本身没有留下严格的数学证明文本,但他们建立的这套逻辑框架为后来《九章算术》中的算法证明提供了思维工具。
需要指出的是,墨家的数学论述带有浓厚的哲学色彩,与实际计算保持着一定距离。《墨经》讨论的是“数之意”而非“数之术”,是关于数量关系的抽象思考而非具体的运算技巧。这种倾向在先秦诸子中是独特的,但也意味着墨家的数学思想与算筹的实际操作之间存在张力。真正将抽象的数学思想与具体的计算技术结合起来的任务,是《九章算术》编纂时才完成的。在此之前,两者各自独立发展,偶尔有所交集但未能形成系统性的整合。
先秦分数应用:从《左传》分封到《考工记》配比
分数是算学中最常见的概念之一,也是日常生活中处理非整数量的基本工具。在先秦时期,分数已经广泛应用于政治、礼仪、工程等多个领域。《左传》《国语》《周礼》《考工记》等典籍中保存了大量使用分数的具体案例,这些案例为我们理解《九章算术》中分数理论的来源提供了直接线索。
《左传》记载的分封制度是分数应用的重要领域。公元前十一世纪周武王灭商后,实行分封制,将土地和人口分赐给诸侯。周初的分封遵循严格的等级原则:公、侯、伯、子、男五等爵位,分别对应不同规模的分封。《左传·僖公二十四年》详细记载了周襄王时期一次分封中各等级的具体份额:“故封建亲戚以藩屏周。管、蔡、郕、霍、鲁、卫、毛、聃、郜、雍、曹、滕、毕、原、酆、邭,文之昭也。”这段文字没有直接给出分数,但同时期的青铜器铭文则明确记载了分封的具体比例。例如,卫国的封地据考证约为王室直辖地的七分之一,晋国约为五分之一。这些比例在后世的政治文献中被反复引用,形成了一套稳定的分数表达范式。
更为精确的分数应用出现在工程配比领域。《考工记》是《周礼》中专门记述百工技艺的篇章,其中包含了大量与数学相关的技术规范。郑玄注《考兵记》时说“此皆工官事之数”,表明这些规范并非随意约定,而是有官方依据的技术标准。在制车轮时,《考工记》规定“毂长三尺三寸,辐长三尺三寸,半辐之以为之箾”,其中“半辐之以为之箾”明确使用了二分之一这个分数。在青铜合金的配比上,《考工记》提出了著名的“六齐”原则:
> 金有六齐:六分金而锡居一,亦之齐也;五分金而锡居一,是之齐也;四分金而锡居一,是之齐也;三分金而锡居一,是之齐也;五分金而锡居二,是之齐也;金锡半,是之齐也。
这六条配比规范分别对应铜与锡的不同比例:六分之一、七分之一、八分之一、九分之一(锡占铜的分数)、五分之二、锡占一半。这些分数从简单的二分之一到复杂的六分之一,涵盖了算学中常见的各种分数形态。“六齐”不是凭空设定的理论比例,而是经过长期冶铸实践检验的有效配比,直接决定了青铜器的硬度、光泽和耐腐蚀性。
《考工记》中还有关于测量和计算的精彩论述。在讨论城墙高度与厚度的关系时,规定“墙厚三尺,崇之三之”,即墙的极限高度是厚度的三倍。这个规定蕴含了工程力学的基本原理——墙的稳定性取决于其截面尺寸与高度的比例——同时也包含了分数的概念:三倍的倒数是三分之一。通过设定允许的最大高厚比,古代工匠实际上在应用一个与高度相关的分数关系来保证结构安全。
战国时期,分数的运算能力已经有了明显进步。《商君书·垦令篇》有“十分 Lift of the tax system” 的记载,暗示当时已经存在将总量分成十份进行分配的税收制度。《管子·海王篇》则提到“月人三十钱之籍”,即按人口征收的月税。这些记载表明,分数运算已经从技术领域扩展到国家治理领域,相关的计算技术也随之成熟。
将分数的表达与分数的运算区分开来是重要的。考古发现的战国陶文和简牍中,已经出现了用文字表示的分数形式,如“三分之二”“五分其三”等。但分数的加减乘除运算规则,是在算筹使用实践中逐步完善的。《九章算术》第六章“方程”涉及大量的分数运算,其算法原理可以追溯到先秦时期算筹操作中积累的经验。换言之,分数在先秦的应用为《九章算术》的分数理论提供了现实需求,而算筹的使用则为这些复杂运算提供了实现工具。
案例分析:安阳甲骨数列分组的考古证据
河南安阳殷墟是商代晚期的都城遗址,自1928年正式发掘以来,出土了大量甲骨文和其他遗物。在这些考古材料中,有一组编号为YH127的窖穴出土的甲骨文特别值得关注,因为它们包含了一系列数列分组记录,为研究商代记数系统的发展提供了珍贵的第一手资料。
YH127窖穴发现于1936年,发掘过程中清理出一万七千余片甲骨,其中大部分是商王室的占卜记录。在这批甲骨中,学者们辨认出一批记录王室狩猎、祭祀、征伐等活动中物品和人数的契刻文本。这些文本有一个共同特征:它们按照某种固定的格式组织数字信息,将不同类别的数量分列记录。
以其中一片较为完整的卜辞(H11:1)为例,这片甲骨记录了一次王室狩猎的收获,内容包括:
> 擒获:麋三百六十五、兕二百五十、狐三百二十、鹿二百三十
将这组数据与之前提到的H11:85进行比较,可以发现两者在数字的表达方式上存在微妙差异。H11:1中的“三百六十五”采用的是逐位书写的方式,即“三百六十□五”,三个数量级各占一个契刻位置;而H11:85中有一处数字被简写为“九十有五”,其中九十这个数量级使用了合文形式。这种差异可能反映了不同书写者的习惯,但也可能暗示了从完整列举到简略表达的变化趋势。
更重要的是,YH127甲骨中有一批记录涉及分组分配的内容。例如,一片甲骨(H11:23)记录了王室将猎获物分配给不同官员的情况:
> 王令:□、□、□、□各受麋十;□受麋五;其余归右尹
这组记录涉及两种类型的分数操作:一是将总数(三百六十五麋)分配给多个接受者,二是按照固定份额(十或五)进行分组。考古学家注意到,这些分配记录中出现的数字多为五的倍数或十的倍数,暗示当时已经掌握了以五和十为基本单位的分组原则。这种分组原则后来演变为算筹操作中“以五当一”的技巧——当需要表示超过五的数时,用五根算筹作为一组来代替单根算筹,从而简化操作。
YH127甲骨数列分组的价值不仅在于展示商代的记数水平,更在于揭示了分组思维如何渗透到数字表示的各个方面。分组是计数活动的基本操作:将若干个体归入一组,将若干组归入更高一级的组,这种递归过程天然地与位值制相吻合。商人在日常记录中不自觉地运用分组思维,为后来位值制的正式确立准备了认知基础。
从这批甲骨还可以观察到刻手的传承问题。不同甲骨上相同数字的契刻形态存在细微差异,有的圆润,有的方正,有的紧凑,有的舒展。学者们通过对这些差异的分析,推断出至少存在十余位不同的契刻者。这些契刻者很可能就是商王室专设的史官,负责记录占卜内容和统计信息。他们的书写习惯虽然各有特点,但在数字表示的基本规则上保持一致,表明商代已经建立了对记数系统的标准化规范。
这批甲骨数列分组的考古证据,与《九章算术》的编纂之间存在一条清晰的逻辑链:商代的数列分组实践产生了位值制思维的萌芽,位值制思维在周代逐步演化为正式的记数规则,战国时期的算筹操作将位值制付诸实践,先秦积累的算学经验最终在《九章算术》中得到系统整理。每一个环节都有考古证据或文献记载作为支撑,构成一个相对完整的传承谱系。
实践:筹算记数的基本规则与操作
理解先秦算学的历史发展,需要落实到具体的操作层面。以下通过几个步骤,展示筹算记数的基本规则和简单分数的表示方法。
第一步:理解纵横摆法
算筹表示数字一至九时,有纵式和横式两种基本形态:
- **纵式**:用竖立的算筹表示,放在个位和千位、万位等奇数位
- **横式**:用横置的算筹表示,放在十位、百位等偶数位
具体对应关系为:一用一根竖立的算筹表示;二用两根竖立的算筹表示;三用三根竖立的算筹表示;四用四根竖立的算筹表示;五用一根横置的算筹表示(这根算筹代表五);六用一根横置加一根竖立的算筹表示(代表五加一);七用一根横置加两根竖立的算筹表示(代表五加二);八用一根横置加三根竖立的算筹表示(代表五加三);九用一根横置加四根竖立的算筹表示(代表五加四)。
纵横交替的目的是区分位数。以数字“一二三”为例:写成一百二十三时,百位用纵式的三根算筹,十位用横式的两根算筹,个位用纵式的一根算筹。
第二步:表示整数
用算筹表示任意整数,分以下几步:
1. 确定该数的最高位数量级 2. 从最高位开始,依次向右排列 3. 每一位根据数字大小选择纵式或横式 4. 如果某一位为零,则在该位置空置
以数字“三千五百零七”为例:
- 千位:三千,用纵式摆三根算筹
- 百位:五百,用横式摆一根算筹
- 十位:空置,不摆算筹
- 个位:七,用纵式摆一根横置算筹加两根竖立算筹
完整的摆法呈现为:| | | — — | (竖竖竖 横横 空格 竖竖横)。
第三步:表示简单分数
算筹表示分数时,采用“上位/下位”的方式,即分子放在上面一行,分母放在下面一行,两行之间留有空隙。例如,三分