竹棍上的宇宙
第一章:竹棍上的宇宙
公元前的某一天傍晚,一个叫小明的少年蹲在地上,手里攥着一把刚从竹园里砍来的细竹棍。他的父亲——一个在县衙里掌管文书账簿的书佐——正把这些竹棍按长短分成两堆。父亲的手指灵巧地翻动着,嘴里念念有词:“五根一束,横三竖二……”小明看得一头雾水,在他看来,这些竹棍跟喂羊的草料没什么两样。
但当父亲用这些竹棍在桌上摆出一个形状时,小明愣住了。那个图案里有横有竖,有聚有散,父亲只是把竹棍来回挪动了几下,桌上的数字就变了——十五变成了五十三,加上了三十八。父亲抬头看着小明说:“记住,这才是咱们中国人算账的法子。”
小明不知道的是,父亲手中这套看似简陋的竹棍系统,曾经是世界上最高效的计算工具之一。它让中国古代的数学家能够进行大数的加减乘除、求解方程组、计算面积和体积——而这一切发生的时候,欧洲人还在用罗马数字笨拙地在羊皮纸上划线。创造这套系统并将它锤炼成理论的人,后来被汇聚成一部书,叫做《九章算术》。
两千年后,一个叫阿城的高中生在历史课本上看到了《九章算术》这个名字,只觉得眼熟。他不知道的是,这部书的思维方式至今仍藏在每个人的手机计算器和数学课本里。而阿城更不知道的是,理解《九章算术》的起点,竟然这么简单——只需要一把竹棍,和一个会摆弄它们的人。
算筹是什么:一种用竹棍说话的计算语言
算筹的正式名称是“算筹”,有时也叫“算子”“筹策”。从字面上看,“筹”是竹片或木片制成的细小棍子,“算”在这里不是指结果,而是指计算的过程。合起来,就是用竹棍来进行计算的工具。
实物形态的算筹通常长约十二厘米到十四厘米,直径两三毫米,相当于一根中华牌铅笔被削成细细的四段。制作算筹的材料不限于竹子,木材、玉石、象牙、兽骨都可以用。贵族用玉做的算筹彰显身份,农民用木棍或树枝也能凑合。关键不在于材料,而在于位值原理——同一个数字,因为放在不同的位置,代表完全不同的数值。
这就是算筹最核心的智慧所在。假设你手里有五根竹棍,把它们横着摆在桌面上,这表示数字五。但如果把它们竖着摆呢?竖着摆放的五根棍子,在算筹的规则里同样表示五。横摆和竖摆本身没有区别,区别在于它们所在的位置。
算筹使用一种交替方向的系统来表示0到9这十个数字:奇数位(个位、百位、万位等)用纵式,偶数位(十位、千位、百万位等)用横式。所谓纵式,就是把竹棍竖着摆成 Column(竖排)的形状;横式就是把竹棍横着摆成 Row(横排)的形状。每个数字都有固定的摆法,二就像两根垂直相交的棍子,五就像一横之下竖着的一小堆,六就像上面一根横棍下面竖着的一根棍。
用今天的话来说,这就是一套五升十进制的符号系统。五升,指的是用一到五根棍子表示1到5,超过五就开始用组合——六用一根横棍上面加一根竖棍表示,五加一;七用横棍上面加两根竖棍,五加二;九用横棍上面加四根竖棍,五加四。十进制的意思是满十进位,个位满了就向十位进一位。
这听起来复杂,但如果用具体数字来演示,其实非常直观。比如要表示数字273,先在个位(最右边)用纵式摆出三根竖棍——这是三。然后在十位用横式摆出七根横棍——这是七十(七根横棍横着摆不开,所以实际摆法是把一根竖棍放在五根横棍的上面或下面,表示七)。最后在百位用纵式摆出两根竖棍——这是两百。三个位置,三个摆法,拼在一起就是二百七十三。
算筹最大的优势在于它的可塑性。摆好的数字随时可以改动,不像刻在甲骨或铸在青铜器上的文字那样固定。计算过程中,每一个中间结果都可以快速清除和重写,这是算筹区别于之前所有计算工具的关键。在算筹出现之前,商代的人用甲骨刻数,春秋战国的人用筹码(一种刻了齿痕的木片)来计数,但这些工具都无法进行复杂的连续运算。算筹的灵活性让真正意义上的数学推导成为可能。
但算筹也有明显的局限。竹棍容易滚动,稍有震动就可能乱成一团,室外有风的时候几乎无法使用。更重要的是,算筹只能表示整数,对于分数和小数的处理需要额外的约定和技巧。这些局限并没有阻止它成为汉代最重要的计算工具——相反,正是在这些约束下,中国古代数学发展出了一套独特的、与工具深度绑定的思维模式。
从战国到东汉:一部没有作者的经典如何诞生
《九章算术》这个名字听起来像是一个人写的书,就像《史记》是司马迁写的、《本草纲目》是李时珍写的一样。但事实上,《九章算术》没有确定的作者。它不是某个天才数学家的独立创作,而是在数百年时间里,经过无数人不断增补、修订、完善才最终定型的集体之作。
这种“集体创作”的模式在中国古代典籍中并不罕见。《诗经》是采诗官从民间收集来的歌谣,《春秋》是鲁国史官世代累积的编年记录。《九章算术》的成书过程同样漫长而复杂,它的根可以一直追溯到春秋战国时期。
公元前221年,秦始皇统一六国,建立了中国历史上第一个中央集权的帝国。秦帝国在短短十五年后就走向了崩溃,但统一度量衡、文字的政策被随后的汉朝继承下来。度量衡的统一意味着不同地区的人在交易时有了共同的标准,而标准化的前提是精确的计算——这直接催生了对实用数学的强烈需求。
西汉建立后,国家面临着一个巨大的行政挑战:管理一个拥有数千万人口的帝国。土地的分配、赋税的征收、粮仓的调运、工程的预算——这一切都需要数学。从朝廷到郡县,从宰相到地方官员,几乎每一个层级的行政工作都离不开计算。《九章算术》正是在这种强烈的实用需求中逐渐成型的。
现存最早的系统记载表明,《九章算术》的内容在汉代初期已经具备了雏形。淮南王刘安主编的《淮南子》一书中提到过“筹”之类的术语,说明当时算筹已经是通用工具。著名数学家张苍(约公元前200年至前100年)和耿寿昌(公元前50年前后)都曾对书中的内容做过整理和删定。张苍负责修订了全书的体例,耿寿昌则补充了与天文历法和工程测量相关的内容。到公元一世纪左右,也就是东汉初年,《九章算术》的基本框架最终确立下来。
《九章算术》全书分为九个大的章节,分别对应九类数学问题。第一章“方田”讲的是土地面积的计算,包括各种形状田地的面积公式和分数运算。第二章“粟米”讲的是谷物换算的比例问题。第三章“衰分”讲的是按比例分配的问题。第四章“少广”讲的是开平方和开立方。第五章“商功”讲的是工程中的体积计算。第六章“均输”讲的是赋税和劳役的公平分摊。第七章“盈不足”讲的是盈亏类的应用题。第八章“方程”讲的是线性方程组的解法,也就是著名的“方程术”。第九章“勾股”讲的是勾股定理及其应用。
这九个章节的排列不是随意的。它们大致遵循从简单到复杂的顺序,从最基本的面积计算开始,逐步推进到最困难的勾股定理。而且,每个章节的问题都来自真实的行政或工程场景,绝少纯粹的抽象推导。
这种内容编排方式折射出中国古代数学的一个鲜明特征:数学是解决实际问题的工具,而不是抽象的智力游戏。张苍整理《九章算术》的时候,心中想的不是“这道题很有意思”,而是“这个县衙的书佐会用到”。耿寿昌补充天文历法的内容,也不是因为他对纯粹的天文学感兴趣,而是因为编制精确的历法是国家的头等大事,直接关系到农业生产和祭祀典礼的时间安排。
两千年来,《九章算术》一直是中国数学教育的核心教材。隋唐时期在国子监设立算学专科,《九章算术》是必修课。宋元时期的数学家在此基础上不断创新,产生了高次方程求解、联立方程组等更加先进的数学方法,但追溯起来,所有这些成就的起点都在《九章算术》里。清代乾隆年间编辑《四库全书》时,数学家戴震对《九章算术》做了详细的校勘,使这个流传了两千多年的文本得以更准确地保存下来。
可以说,《九章算术》之所以被称为中国古代数学的“圣经”,不是因为它神圣不可侵犯,而是因为它像《圣经》一样,深入到了中国人生活的每一个角落。从计算一亩田地的产量,到规划一座城池的城墙高度,再到编制一部新历法——背后都是《九章算术》奠定的方法和思维方式。
小明的第一次计算:一道粟米题的完整拆解
回到开头的故事。小明蹲在地上,父亲已经把算筹摆成了一个复杂的图形。父亲说:“今天你跟我去粮仓交税,张大户家报的是上等粟米三百石,要换成精米。粟米三斛换精米一斛,你给我算算张大户该得多少精米。”
这就是《九章算术》第二章“粟米”中的经典问题——“粟米之率”。小明的脑子里还在想“三斛换一斛”是什么意思,父亲已经把粟米和精米的兑换比例写在了墙上的一张木牍上。粟米、精米、糗(炒熟的米)、粝(粗米)、粺(精米的一种)——不同的加工等级对应不同的兑换比例。这些比例不是凭空设定的,而是来自长期农业生产经验的积累。
小明开始用算筹计算。他的计算过程大致如下。
首先,他把粟米三斛这个数字用算筹摆出来。“斛”是容量单位,三斛就是三。兑换比例是粟米三斛换精米一斛,所以他需要做的是:3 ÷ 3 = 1。答案是一斛精米。但这只是最简单的情况。
父亲又出了第二道题:“李四家的田报的是粟米一百二十斛,按今年的税率,每二十斛粟米折精米八斛,问该交多少精米?”
这道题稍微复杂一点。小明需要在算筹上把一百二十这个数字摆出来,然后用八去除二十。用算筹做除法的基本思路是:把被除数(一百二十)摆在中间,除数(二十)摆在下面,通过反复比较和减损来确定商。二十的四倍是八十,二十的六倍是一百二十——所以商是六。
但父亲显然不打算让小明只算一道题就结束。他让小明把《九章算术》中粟米章的前十道题全部用算筹做一遍。小明一开始笨手笨脚,不是把竹棍摆错了位置,就是忘记了奇偶数位的纵式横式交替规则。有一次他把一百摆成了横式的百(正确应该是纵式),算出来的结果整整差了十倍。
父亲没有责备他,只是指着算筹说:“你看着,这根棍子在这里是一,在百位就是一百,在千位就是一千。位子一变,大小全变。你记住,人也是一样的——在什么位置上,就做什么位置上该做的事。”
这句话小明似懂非懂。但反复练习了十几道题之后,他终于找到了感觉。粟米的换算、粝米的比例、精米的折算——各种兑换关系在他手下逐渐清晰起来。父亲在旁边看着,偶尔纠正他的摆法,偶尔问他:“如果粟米不够二十斛怎么办?还按这个比例折算吗?”
这个问题把小明问住了。他从来没想过不够的情况。父亲说:“不够的也要按比例算。数学里有一条规矩——比例面前,大小平等。一升粟米换多少精米,和一百斛粟米换多少精米,比例是一样的。这就是数学的公平之处。”
这句话让小明对算筹产生了全新的感受。那些竹棍不再只是木头的碎片,而是一种说理的工具——它们用位置和数量之间的关系,把世界的秩序表达得清清楚楚。
用牙签做算筹:动手体验古人的计算
既然说到了小明的练习,最直接的理解方式就是自己动手试试。不需要准备真正的算筹,家里随便找一些细长的东西就行——牙签、火柴棍、棉签、甚至筷子截成的短段。关键是准备好足够多的数量,至少五十根以上,因为计算过程中需要反复摆放和清空。
在动手之前,需要先掌握算筹表示0到9的基本摆法。为了便于记忆,可以把0到9分成两个一组来理解:第一组0到4是基础数字,用最少的棍子摆出,0表示空位(没有棍子),1到4分别用1到4根棍子竖着摆或横着摆(取决于位置)。第二组5到9是在五的基础上加上相应的数量——5是一根横棍(表示五),6是横棍上面加一根竖棍(五加一),7是横棍上面加两根竖棍(五加二),以此类推,9是横棍上面加四根竖棍(五加四)。
有了这套符号之后,就可以尝试摆数字了。先从简单的开始,比如摆出数字47。先在右侧(个位)用纵式摆出7(七根棍子太多摆不下,实际做法是一根横棍上面竖着放两根棍子),然后在左侧(十位)用横式摆出4(四根横棍并排)。注意,奇数位用纵式,偶数位用横式,这个规则不能搞错。
接下来尝试加法。比如计算47加28等于多少。第一步,把47用算筹摆出来。第二步,在47的右侧或下方腾出空间,准备摆28。注意,28的摆法是:个位用纵式摆8(横棍上面竖三根),十位用横式摆2(两根横棍并排)。第三步,把两个数字对齐,从右往左逐位相加。个位:7加8等于15,满十,向十位进一,个位留下5。十位:4加2再加进位1等于7。所以答案是75。
整个过程的关键在于“进位”的概念。当某一位的数字加起来超过9时,就必须把十这个数量“推送”到左边一位去。这跟我们今天做竖式加法时满十进一的规则完全一致。算筹用不同的位置来表示不同的数量级,进位的操作就是在这个位值系统里把多余的棍子向左移动一列。
可以进一步尝试更复杂的计算。假设计算345加678。先把345和678都用算筹摆出来:345用纵式摆3、横式摆4、纵式摆5;678用横式摆6、纵式摆8、横式摆6。然后逐位相加:个位5加6等于11,留1进1;十位4加8再加进位1等于13,留3进1;百位3加6再加进位1等于10,留0进1到千位。最终结果是1023。
亲手做过这些计算之后,会对位值原理产生一种非常具体的理解。当你把两根竹棍从个位移到十位,然后看着它们在这个新的位置上代表十倍的数值——这种体验比任何文字描述都更直接。它让人意识到,今天我们在纸上写的那些数字“345”“678”,本质上是一种抽象化的算筹:我们用笔和纸代替了竹棍,用印刷的符号代替了摆弄,但底层的逻辑完全相同。
当然,用牙签模拟算筹很快就会遇到它的局限。数字大了之后,桌面上摆满了竹棍,看起来乱成一团。稍微碰一下桌面,竹棍就移位了。在没有纸和印刷品的年代,人们解决这个问题的方法是用一块专门的计算板——通常是一块漆布覆盖的木板,上面有经纬线的格纹,方便定位算筹。现代学者推测,汉代的书佐在办公时很可能是跪坐在案几前,用算筹在布面上计算,布面的摩擦力能防止竹棍轻易滑动。
即便有计算板,大规模计算仍然是一项需要高度专注和长时间训练的技能。一个熟练的算筹计算者每分钟能完成大约几十次加法和减法,但乘法和除法会慢得多,除了一些专门简化过的算法比如“求一法”“、更相减损术”等。这些算法被系统性地记录在《九章算术》中,为后世算盘的发明奠定了方法论基础——算盘的拨珠动作,在很大程度上是对算筹摆法的机械化和加速化。
从“数”到“算”:中国人怎样理解数学这门学问
在《九章算术》第一章的开头,有一段关于数学起源的论述:“昔在包犧氏始画八卦,以通神明之德,以类万物之情。作九九之术,以合六爻之变。”这段话说的是,远古的伏羲氏画八卦来理解天地万物的道理,发明了九九乘法表来配合八卦的变化。虽然这是后世添加的神话性叙述,但它透露了一个重要的信息:中国古代数学的起点,是理解天地万物的运行规律,而不仅仅是记账算账。
这里出现了一个值得深思的语言细节——“数”字本身。在甲骨文和金文中,“数”字有两种写法。一种从“娄”,一种从“婁”,两者的共同部分是上面像网的形状,下面是“攴”(像一只手握着工具敲击的样子)。学者们普遍认为,“数”的本义是用手计算或清点网中捕获的猎物——这意味着在造字的年代,“数”首先是一个动词,表示计算和清点的动作,其次才是一个名词,表示数量和数目。
这个语言学细节揭示了中国数学思维的一个深层特征:对中国人来说,数学从来不是一套独立存在的符号系统或逻辑体系,而是一种嵌入在实践活动中的操作性知识。你不是在“研究”数学,你是在“用”数学。算筹不是数学理论的一部分,它就是数学本身——计算的过程就是思考的过程。
这种实用主义的传统深刻地塑造了《九章算术》的内容和风格。翻开《九章算术》,你不会看到任何一道题是纯粹的“证明题”或“推导题”。每一道题都来自一个具体场景:某家的田地形状不规则,要算出面积;某个粮仓的官员需要把不同品种的粮食按比例混合;某段河渠需要挖掘,问挖出的土方量是多少。这些问题都从实际行政、工程或商业情境中提取出来,用数学方法求解之后,再回到实际应用中去。
但实用主义不等于没有理论深度。《九章算术》第八章“方程”中记载的线性方程组解法(后人称之为“方程术”),在本质上就是今天线性代数中的高斯消元法——而这比欧洲人独立发展出类似的方法早了至少一千五百年。第九章“勾股”中给出的勾股定理特例(勾三股四弦五),是中国古代对这个定理的最早系统性应用记录,比希腊数学家毕达哥拉斯的证明大约早了几百年,虽然中国版本的严格证明要等到三国时期的赵爽。
《九章算术》对世界的贡献远不止于具体算法。它建立了一套完整的数学问题分类体系,用“问——答——术”的结构来处理每一道题。“问”是实际问题,“答”是具体数值,“术”是解决这一类问题的通用方法。这种结构让《九章算术》既是一部问题集,又是一部算法手册——读者遇到新问题,可以根据问题的类型(属于哪一章的哪一类)找到相应的“术”,然后按照步骤执行。这种思维方式已经非常接近现代计算机科学中的“算法”概念。
英国科学史家李约瑟在《中国科学技术史》中高度评价了《九章算术》的历史地位。他指出,中国古代数学走的是一条与古希腊完全不同的道路:希腊数学追求公理化的逻辑体系,追求“纯粹知识”的确定性;而中国数学追求算法的高效性和问题的可解决性,追求“在实践中管用”。这两条道路各有优劣,也各自影响了所属文明的发展轨迹。
李约瑟提出过一个著名的问题:“为什么现代科学没有在中国诞生?”这个问题的答案当然极其复杂,不是单一因素可以解释的。但《九章算术》的传统至少提供了一条线索:当数学被定义为“解决问题的工具”时,它的创新动力来自现实需求的压力;当数学被定义为“追求真理的知识”时,它的创新动力来自逻辑自洽性的要求。这两种动力都能推动数学进步,但它们推动的方向不同——前者更容易产生先进的算法和计算技术,后者更容易产生深刻的理论框架。中国古代在算法方面长期领先,但在公理化演绎方面相对薄弱,这个特点在《九章算术》中已经初见端倪。
回到小明的故事。那天傍晚,当小明终于用算筹正确地算出了父亲出的所有粟米题时,窗外已经全黑了。母亲端着油灯进来,看见父子俩蹲在地上一堆竹棍旁边,就笑着说:“看你们俩,跟算命的似的。”父亲直起腰来,揉了揉发酸的膝盖,对小明说:“明天县衙里要核各家的户籍和田亩簿,你跟我去,把今天学的用上。”
小明点了点头。他不知道的是,他手中那把轻轻巧巧的竹棍,已经在这个傍晚悄悄在他心里种下了一颗种子。那颗种子会在未来的某一天破土而出,让他看见一个远比粟米和户籍簿更加广阔的世界——那个世界里,有开平方的几何图形,有方程组背后的矩阵思维,还有勾股定理通向宇宙星辰的路径。
而那颗种子最初的发源地,就是眼前这部没有单一作者的《九章算术》。它的每一道题、每一个算法、每一种思维方式,都像是算筹上的一根竹棍——单独看,只是细细的一根;但当它们按一定的规律摆放在一起时,就能算出整片天地。
下面这张流程图展示了用算筹进行基本加法运算的完整过程,可以帮助理解从摆数到进位再到得出结果的工作机制。
```mermaid flowchart TD A[准备算筹\n摆出被加数] --> B[在右侧或下方\n摆出加数] B --> C[从右向左\n逐位相加] C --> D{该位和是否\n大于等于10?} D -- 是 --> E[该位留下\n余数 即和减10] E --> F[向左侧一位\n进1] F --> G{还有未计算的\n更高位吗?} D -- 否 --> G G -- 是 --> C G -- 否 --> H[计算完成\n读取最终结果] ```
本章小结
这一章从小明手中的一把竹棍出发,追溯了算筹的基本原理和《九