花剌子米(约 780—约 850),全名穆罕默德·伊本·穆萨·花剌子米。「花剌子米」不是姓,是籍贯:阿姆河下游的花剌子模,今天的乌兹别克斯坦希瓦一带。他一生大部分时间在巴格达,服务于阿拔斯王朝的马蒙宫廷,是「智慧宫」里那批学者中的一个。
他留下的东西,用一句话可以说清:把「怎么算」写成「照着做」。在他之前,巴比伦人有解法,希腊人有证明,印度人有好用的数字;但那三样东西各自待在自己的地方,谁也不能拿起来就用。他把它们合在一本书里,编成一套谁都能照抄的步骤。
两本书最重要。一本是《还原与对消之书》(约 820),讲六类一次与二次方程,配几何证明,后半部讲遗产分割与丈量。另一本是《印度数字算术》(约 825),讲十个符号与位置记数,阿拉伯原文已佚,只剩一部十二世纪的拉丁译本。
本册分五幕:第一幕讲「没有 x 的算术」是什么样子(p.6—p.12);第二幕讲他的两把剪刀——还原与对消(p.13—p.19);第三幕讲配方为什么对,用一张图证(p.20—p.26);第四幕讲书的后半部:遗产、丈量、商队(p.27—p.33);第五幕讲两个词怎样走了一千年(p.34—p.40)。暗线一句:一个名字变成两个词。
三层读法照旧:故事层无需预备知识;数学层用到平方、开方与分配律(p.7—p.9、p.14—p.16、p.21—p.23);注疏层给出抄本、译本与卷次,逐页可查。
花剌子模在阿姆河下游,四面是沙,中间是一块靠河活着的绿洲。城里的人做三件事:种地、织布、做买卖。三件事都要算——水渠要按户分水,布要按尺论价,商队要按路程算日子。
这块地方的位置很特别:往东是中国的西域,往南是波斯与印度,往西是巴格达。商队在这里换骆驼、换语言、也换算法。一个在绿洲长大的孩子,会先学会换算,再学会证明。
关于他的早年,材料只有一句:他出自花剌子模。没有出身、没有师承、没有求学记录。这在一千二百年前不算反常——只有两种人会留下详细的早年:王族与圣徒。一个算学家的童年,通常就这么丢了。
能确定的是他后来去了巴格达,而且一去就没再回来。他带着的,大概就是绿洲上那套「什么事都要算一算」的习惯。这本册子要讲的六类方程,最早的动机不是哲学,是分水、分地、分遗产。
巴格达是 762 年新建的都城,圆形城墙,四面城门,城中心是哈里发的宫殿与清真寺。到马蒙(813—833 在位)手里,这座城市已经成了当时世界上最大的书库之一。
马蒙做了一件影响很深的事:组织翻译。希腊的几何与天文、波斯的行政与历法、印度的数字与星表,被一批一批译成阿拉伯文。这项工作后来被称作「翻译运动」,而它办事的机构,后世称为「智慧宫」(Bayt al-Ḥikma)。
花剌子米就在这个机构里工作。他手边有三样材料:希腊的证明(欧几里得、托勒密)、印度的数字与算法(《悉檀多》一系的星表)、波斯的实用算表(税册、历书、分水账)。三样东西各有各的长处,也各有各的毛病:希腊人讲得清但算得慢,印度人算得快但不说为什么,波斯人的表好用但不成体系。
他要做的事因此很清楚:把三者缝在一起。用希腊的证明给印度的算法撑腰,用波斯的账目给理论找活干。这不是一件浪漫的事,是一件极费耐心的编书工作——而正是这件事,让「代数」成为一门可以教、可以学、可以传给下一个人的学问。
他的两本书,一本教「怎么解方程」,一本教「怎么写数」。前者后来给了欧洲一个词:algebra;后者给了他一个拉丁化的名字:Algoritmi,再由这个名字长出 algorithm。
两件事看似无关,其实是一件事的两半。没有好的记数法,就算不快;没有可照做的步骤,就算不准。他两样都给了,于是「计算」第一次变成一件可以交给别人做的工作。
本册的暗线就藏在这里:一个名字变成两个词。一个人名成了「算法」,一本书名成了「代数」——这在科学史上几乎绝无仅有。更有意思的是,他自己并不知道这两个词会变成什么。他只想编一本能用的书。
第一幕从一个具体的困境开始:在他之前,人们解方程时,纸上写的是什么?没有 x,没有等号,没有指数——一句话要说清「一个平方与十个根等于三十九」,得写整整一行字。
九世纪初的一张算纸上,没有 x,没有等号,没有指数。要写「一个平方加十个根等于三十九」,得写整整一句话:「一个平方与十个根,等于三十九个迪拉姆。」
这不是修辞。这是当时唯一能写的方式。巴比伦人在泥板上用六十进制列算式,但每道题都是一个具体的数例,做完了就完了,不总结方法;希腊人在纸上画图、写证明,但他们的「数」是几何量,不是可以搬来搬去的符号;印度人有好用的十个数字,也会解方程,可他们的写法是韵文口诀,靠师徒口传。
三样东西放在同一张桌子上:会算的说不清,说清的算不动,算得快的不留字。花剌子米要做的,是把这三样缝起来。
缝的办法很朴素:承认没有符号,那就用语言把规则说死。「把减去的项加到另一边」——这句话本身就是一条规则,只要说得准,没有 x 也能执行。他要写的不是一本炫耀聪明的书,是一本别人能照着做完的书。
他开篇先立三个名目,全书只用这三个:
根(jidhr):任何自乘之后等于某个平方的量。用今天的说法,根就是 x,或者 √n——他说「十的根」,指的是 √10。
平方(māl,本义「财产、财物」):一个根自乘所得。用今天的说法是 x2。
数(dirham,迪拉姆,当时的银币单位):不带根的纯数。
这三个名目之外,他一概不认。没有 x3,没有负号,没有零次项的说法。凡是超出这三样的,都要先化归成这三样——这一步化归,正是下一幕的「还原与对消」。
三个名目也有算术上的次序:根乘根得平方,平方乘根得立方(他承认立方存在,但不解三次方程),平方除根得根。这套「乘一次升一级」的规矩,用语言说得清清楚楚,不需要指数记法。
把「根」「平方」「数」三样分放等号两边,只允许正系数,能摆出的样子只有六种。他的分类是:
一、ax2=bx 平方等于根。约去 x,得 x=b/a。
二、ax2=c 平方等于数。得 x=√(c/a)。
三、bx=c 根等于数。得 x=c/b。
四、ax2+bx=c 平方与根等于数。
五、ax2+c=bx 平方与数等于根。
六、bx+c=ax2 根与数等于平方。
为什么只有六类?因为他不承认负数。项只能在两边之间搬,不能凭空变成负的;于是「ax2−bx=c」这样的写法在他那里不存在,它必须先还原成 ax2=bx+c,归入第六类。六类不是数学的极限,是「只许正数」这条规矩的结果。
他给的第一道题是:一个平方与十个根,等于三十九个迪拉姆。即 x2+10x=39。属于第四类。
解法分五步,用纯语言写出:
一、取根数的一半:十的一半是五。二、把它自乘:五乘五得二十五。三、加到数上:三十九加二十五得六十四。四、开方:六十四的根是八。五、减去五:八减五得三。答案:三。
验算:32+10×3=9+30=39。对。
这五步为什么对?他没用代数式回答,他用了一张图。把 x2 画成一个正方形,把 10x 画成四条宽 10/4=2.5 的边条,贴在四边;四角各缺一块 2.5×2.5=6.25 的小方。补上四角,总面积变成 39+4×6.25=39+25=64,而补完的形状恰好是一个边长为 x+5 的大正方形。于是 x+5=8,x=3。
这张图是本册的枢纽。它把「五步操作」和「为什么对」接在了一起:操作是给别人用的,图是给自己看的。第三幕会把这张图一格一格拆开。
后人常替他可惜:既然已经把规则想得这么清楚,为什么不给未知量一个记号?有了记号,一本书可以缩成三页。
但这件事要放在他的处境里看。他的读者不是学者,是计算者:分遗产的、丈量土地的、收税的、做买卖的。这些人不读几何,也不打算学一门新文字。他们要的是一句能听懂、能背下来、能当场执行的话。符号对他们是门槛,不是帮助。
还有一层:符号要能被抄。九世纪的书靠人手抄,抄错一个记号,整道题就废了;而「取根数之半,自乘,加于数」这样的话,抄错一个字也还读得通。在那个传播条件下,啰嗦是一种可靠。
所以他的选择不是「没想到」,而是「不划算」。他知道规则,只是把规则写在语言里。真正的符号代数要再等七百年——等到印刷术普及、等到一群专门跟符号打交道的人出现。工具没到,需求先到了,这就是他的位置。
「取根数之半,自乘,加于数,开方,减半」——这句话里没有「因为」,只有「先做这个,再做那个」。它是一条指令,不是一个论证。
这就是本册要指出的第一件事:证明与程序可以分开。证明回答「为什么这样算是对的」,程序回答「怎样一步步算出来」。希腊人有前者,巴比伦人有后者,花剌子米第一次把两者放进同一本书,而且分开放——前半部给程序,后半部(以及那些图)给证明。
分开的好处极大。程序可以被不识字的人记住、被不懂证明的人执行、被抄写员一字不改地复制。一门学问要传下去,靠的从来不是最聪明的那个版本,而是最容易被复制的那个版本。
这套「六类 + 每类一套流程」的写法,一千年后被人叫作 algorithm——而这个词,正是他名字的拉丁化。他写的是「怎么算」,历史读成了「怎么让机器算」。
第一幕讲起点:在他之前,会算的说不清,说清的算不动。
处境。没有 x、没有等号、没有指数;一句话要说清一道方程。
三名词。根、平方、数。凡超出这三样的,先化归。
六类。只许正系数,故方程只有六种样子;负项靠「搬」消掉。
一道题。x2+10x=39:取半、自乘、加之、开方、减半,得 3。
六类:ax2=bx;ax2=c;bx=c;ax2+bx=c;ax2+c=bx;bx+c=ax2。
配方五步:x=√(c+(b/2)2)−b/2,此处 b=10, c=39,得 √64−5=3。
几何核:(x+b/2)2=c+(b/2)2。
书的全名很长:《还原与对消之书,论计算》(al-Kitāb al-mukhtaṣar fī ḥisāb al-jabr wa'l-muqābala)。开头是一段献词,对象是哈里发马蒙,语气恭敬,理由却很实在:
「人们在做计算时,总需要一些东西:分遗产、继承、审判、买卖、互换、丈量土地、开渠、几何。」他接着说,这些东西里有些是必须的,有些是好用的;他写这本书,是为了让计算变得容易,让人不必反复试、不必猜。
这段序言值得停一下。它没有说「数学是通往真理的路」,也没有说「数体现宇宙的秩序」。它说的是:有人要分东西,分不清,所以我写一本怎么分的书。这是九世纪巴格达的口气,不是雅典的口气。
但也别把它读成一本纯粹的账房手册。书里有几何证明,有对「为什么」的追问,有对无理量的处理——他只是把证明放在后面,把用处放在前面。这个次序,本身就是一种判断:先让人用得着,再让人明白为什么。
还原(al-jabr):「把一个被减去的项,接到另一边的加项上去。」原文的 jabr 本义是接骨、复位——断了的骨头接回去,被挪走的项也接回去。
例一:「一个平方减去五个根,等于六个单位。」写成 x2−5x=6。这里的 −5x 是「被减去」的项,还原就是把它接到另一边:x2=5x+6。
还原之后要看清它落在哪一类。x2=5x+6 是「平方等于根与数」,即第六类(bx+c=ax2),不是第四类。这两类的配方只差一个符号:第四类是「减半」,第六类是「加半」。
按第六类走:取根数之半 2.5,自乘得 6.25,加于数 6 得 12.25,开方得 3.5,加上 2.5 得 6。验算 36−30=6。答案 6。
若误当第四类去算,就会得 3.5−2.5=1,验算 1−5=−4≠6,错。还原不只是搬项,搬完必须重新认型——这是这套方法最容易踩空的一步。
例二:「十个根减去一个平方,等于二十一。」10x−x2=21,还原得 10x=x2+21,归入第五类。这一类有两个答案:x=3 与 x=7。验算:30−9=21,70−49=21。都对。
对消(al-muqābala):「两边同类的项相抵。」原文 muqābala 意为面对面、相对——两样同类的东西面对面站着,就相互抵消。用今天的话,就是等式两边同减一个量。
例一:「五十个单位加一个平方,等于二十九个单位加十个根。」写成 50+x2=29+10x。两边各减去 29:21+x2=10x。归入第五类,两个答案 3 与 7。验算:50+9=59,29+30=59;50+49=99,29+70=99。
例二:「五个平方加三个根,等于两个平方加十二个根。」5x2+3x=2x2+12x。对消 2x2 与 3x:3x2=9x。归入第一类,两边同除以 x:3x=9,x=3。验算:45+9=54,18+36=54。
两把剪刀合起来,就是一套化简流程:先还原(去掉所有减项),再对消(两边同类相抵),再看剩下的是六类中的哪一类。任何一道题,走完这三步都能归型——这就是全书的方法论骨架。
化简要能做,得先会乘。他给的规矩只有一句:把每一部分与每一部分相乘。这条规矩,就是后来的分配律。
例一:(10−x)2。四步相乘:10×10=100;10×(−x)=−10x;(−x)×10=−10x;(−x)×(−x)=x2。合计 100−20x+x2。
例二:(10+x)(10−x)。中间两项 +10x 与 −10x 正好相消,得 100−x2。这是「平方差」最早的文字表述之一。
根与根相乘,规矩不同:根相乘,先把被开方数相乘再开方。√18×√8=√(18×8)=√144=12。相除同理:√18÷√8=√(18/8)=√(9/4)=3/2。
开方也有规矩:√(x2)=x,√(9x2)=3x。若开不尽,就把根留着——他明确说,遇到开不尽的数,「就让它带着根」,不必强行化掉。这是九世纪对无理量最实用的态度:不否认它,也不逼近它,就把它当一个可运算的对象。
序言里那串用途不是客套。九世纪的巴格达,算术是一件有编制的工作:宫廷要算历(定斋月与朝觐)、要算税(土地税、人丁税、商税)、要算水(底格里斯河与运河的分水)、要算钱(铸币与兑换)。这些活都归「计算者」(ḥāsib)干。
花剌子米的服务对象就是这批人。所以他写书的方式也必须照顾他们:不设公理,不列定义,不上来就证明。上来先给一道题、一个做法、一个答案,然后才解释为什么。这在希腊人看来是本末倒置,在实际工作者看来是唯一可行的次序。
这也带来一个代价。他的书被后世一些学者评为「只讲方法,不讲原理」;甚至有人说他「把希腊的证明丢掉了」。这是误读,但误读有原因:证明被放在后半部,被商业算例压在下面,抄写时最容易被省略。真正丢掉的不是证明,是证明的位置。
暗线的这一层可以说清:他选择先当匠人,再当学者。这门学问后来能长成参天大树,恰恰因为它的根先扎在账本里,而不是扎在学园里。
把六类当成「数学定理」,会看不出它的妙处。把它当成六种句型,就看得很清楚。
学一门语言,先学句式:「主语+动词+宾语」。看到一句话,先认出它属于哪个句式,再按句式去理解。花剌子米的六类就是六种句式:平方等于根、平方等于数、根等于数、平方与根等于数、平方与数等于根、根与数等于平方。
于是每道题的处理变成三步:第一步,化简(还原+对消);第二步,归型(看它落进六类中的哪一类);第三步,套用该类流程。三步走完,答案就出来了——不需要每次重新想办法。
这三步的意义超出解方程。它第一次把「解题」变成「识别+调用」:先认出形状,再取出对应的工具。今天的算法设计里,这一步叫「模式匹配」;今天的中学课堂上,它叫「先化成标准形式」。两者同一个祖先。
第二幕讲工具:两把剪刀把任何一道题剪成标准形状。
还原。把被减去的项接到另一边。x2−5x=6 变成 x2=5x+6,得 x=6。
对消。两边同类相抵。50+x2=29+10x 变成 21+x2=10x,得 3 或 7。
乘除开方。逐项相乘;根相乘则先乘被开方数;开不尽就带着根。
归型。化简之后看它属于六类中的哪一类,再取对应流程。
还原(jabr):x2−bx=c ⟹ x2=bx+c;bx−x2=c ⟹ bx=x2+c。
对消(muqābala):a1x2+b1x=a2x2+b2x ⟹ (a1−a2)x2=(b2−b1)x。
乘:(10+x)(10−x)=100−x2;√18·√8=12;√18/√8=3/2。
他的书里有一批图。现存的十四世纪抄本上还能看到几幅,画得笨拙,线条不齐,但意思清楚:把「平方」画成一个正方形,把「根」画成一条边,把「数」画成面积。
这个对应关系不是装饰。它是证明的全部。一旦「平方」是面积、「根」是边长,那么「加上十个根」就只能是「在四边各贴一条面积相当的边条」;而「配方」就只能是「把四个角补齐」。代数的每一步,在图上都有一个动作。
希腊人早就这么干过。《几何原本》第二卷的命题 4 就是「(a+b)2=a2+2ab+b2」,用图证;命题 5、6 处理「长方形与正方形的关系」,实质上就是二次方程。花剌子米接的正是这条线——但他多做了一件事:把图上的动作翻译成一套文字指令,让不会看图的人也能算。
所以第三幕要讲的不是「他怎么解方程」,而是「他凭什么说解对了」。答案在一张图上:补四个角。
题:x2+10x=39。构造分四步,每一步都对应一个代数动作。
第一步,画方。画一个正方形,边长记作 x,面积就是 x2。
第二步,贴四条。把 10x 分成四份,每份 2.5x,画成四条宽 2.5、长 x 的窄条,贴在正方形的四条边上。此时总面积正好是 x2+10x=39。
第三步,补角。贴完四条,四个角上各留下一个 2.5×2.5 的空缺。补上四块,每块 6.25,四块共 25。总面积变成 39+25=64。
第四步,认边。补完之后,整个图形是一个大正方形,边长 x+2.5+2.5=x+5。所以 (x+5)2=64,x+5=8,x=3。
验算:9+30=39。图证完了,方程也解完了,两件事是同一件事。这一步的意义在于:那个凭空出现的「二十五」不是魔术,它就是四个角的面积。
题:x2+21=10x。这是第五类。它有两个正根:3 与 7。为什么会有两个?看几何。
把 10x 看成一个长方形:长 10、宽 x。方程说:从这个长方形里挖掉一块 x×x 的正方形,剩下的面积是 21。剩下的形状是一个 (10−x)×x 的长方形。
于是问题变成:找一个长方形,周长 20、面积 21,边长各是多少?答案是 3 与 7——2(3+7)=20,3×7=21。而 x 可以是其中任意一边,所以 x=3 或 x=7。
他的算法写法:取 10 的一半 5,自乘得 25,减去数 21 得 4,开方得 2,用 5 加 2 得 7,用 5 减 2 得 3。「加」与「减」各给一个答案,两个都写下来。
这一步比它的样子重要。到了十六世纪,欧洲的算书还在为「负根」争论;而九世纪的巴格达,一个算学家已经平静地写下两个答案,因为它们对应两个真实的长度。「方程有几个根」,在他那里不是理论问题,是量地时能不能量出两条边的问题。
把六类各写成一个答案,全书就可以收起来了。下面每一行都配一个算例,算例都是本册实算。
一、ax2=bx → x=b/a。例 3x2=12x,x=4(48=48)。
二、ax2=c → x=√(c/a)。例 2x2=50,x=5。
三、bx=c → x=c/b。例 7x=35,x=5。
四、ax2+bx=c → x=[−b+√(b2+4ac)]/(2a)。例 x2+10x=39,x=3。
五、ax2+c=bx → x=[b±√(b2−4ac)]/(2a)。例 x2+21=10x,x=3 或 7。
六、bx+c=ax2 → x=[b+√(b2+4ac)]/(2a)。例 5x+6=x2,x=6。
六行里有四行是同一件事:第四、五、六三类的差别,只在根号前那个符号,与根号里那个减号。他没有把这四行合成一行,因为合起来要写「±」,而「±」需要一个能容纳负数的记号系统。差一步,就差七百年。
他的世界里没有负数。这不是没想到,是用不上:分遗产不会分出负的迪拉姆,量地不会量出负的尺。既然用不上,就没有名目,也没有记号。
后果是一整套分类学:因为系数必须为正,方程才有六种样子;因为只认正根,第五类的两个答案才都要写出来;因为不认零,ax2=bx 才敢直接除以 x 而不讨论 x=0。
还有一句常被引用的话。第五类若碰到 (b/2)2<c,也就是根号里出现负数,他会说:「这道题不可能。」不是「无解」,是「不可能」——因为在量的世界里,确实没有这样的长方形。一个数学判断,被一句日常语言说尽了。
这不只是「落后」。分类让每一类都有独立可执行的流程,工程上更可靠:一个收税的人不需要理解「统一公式」,他只需要认出这是第几类,翻到那一页,照着做。代价是看不到全貌——方程的完整图像、根的个数与系数的关系、代数学基本定理,都要等到人们愿意承认负数与虚数之后。数的范围,往往是被用途划定的,不是被逻辑划定的。
六类各有各的名字,各有各的流程,各有各的算例。这在教学上是好事:可查、可背、可练。一个学生学完六类,拿到任何一道题都能动手。
在数学上是坏事:看不到它们本是同一件事。同一道题,只因项摆在哪一边,就要换一套说法、换一个公式、换一张图。这就像六把钥匙开六把锁,而锁其实是同一把,只是转了个方向。
统一要等符号。1591 年韦达用元音字母表示未知量、辅音表示已知量;1637 年笛卡尔用 x, y, z 表示未知、a, b, c 表示已知。字母一进来,项就可以自由搬家,六类立刻塌成一行:ax2+bx+c=0。分类学退场了。
但它留下两样东西,一直留到今天:一是配方(把二次式凑成完全平方,今天用来推求根公式、化圆方程、算方差);二是「先化标准形」的习惯(做题第一步先整理成标准形式,再动手)。分类学死了,分类学的肌肉记忆活着。
第三幕讲证据:配方不是口诀,是补四个角。
图与式的对应。平方是正方形,根是边,数是面积;加十个根=贴四条边条。
关键数。四角之和 4×(2.5)2=25,即根数一半的平方。
两个答案。x2+21=10x 对应「周长 20、面积 21」的长方形,边长 3 与 7,两个都算。
一句「不可能」。根号里出现负数,他说这题不可能——因为量不出来。
配方:x2+bx=c ⟹ (x+b/2)2=c+(b/2)2。
第五类:x=b/2±√((b/2)2−c),b=10, c=21 得 7, 3。
第六类:x=b/2+√((b/2)2+c),b=5, c=6 得 6。
《还原与对消之书》的后半部,讲的全是「俗事」:遗产怎么分,地怎么量,账怎么算。这三样占了全书将近一半的篇幅,而且写得比前半部更细。
遗产部分尤其细。伊斯兰继承法有一套复杂的份额规则:固定份额(farḍ)与余产(ʿaṣaba)两套并行,还要处理遗赠(最多为遗产的三分之一)、债务、以及「份额加起来超过一时怎么办」(ʿawl,按比例缩减)。这些都是分数运算,一步算错,一家人就要打官司。
丈量部分是另一路。他给的不是定理,是公式清单:圆、环、菱形、三角形、弓形、以及「用影子量高度」。这些公式有的精确,有的只是近似(比如圆面积取 22/7),他也不隐瞒,直接写明「这是常用的做法」。
把这两部分放进一本代数书,今天看来奇怪,当时却很自然。代数是工具,工具要有活干。一本只讲工具的书没人买,一本只讲活的书传不下去——两样合起来,才有人抄。
题:某人去世,遗赠一个外人:遗产的四分之一再加十个迪拉姆。余下的按教法分给两个儿子和一个女儿,女儿得儿子的一半。若女儿实得 100 迪拉姆,问遗产几何?
第一步,设。设遗产为 x。遗赠是 x/4+10。
第二步,写余。余下 x−(x/4+10)=3x/4−10。
第三步,按份额分。两个儿子各得两份、女儿得一份,共五份,女儿占 1/5。所以 (3x/4−10)/5=100。
第四步,还原。两边乘 5:3x/4−10=500;还原得 3x/4=510;两边乘 4 除以 3:x=680。
第五步,验。遗赠 680/4+10=180;余 500;女儿得 100,两个儿子各 200;合计 180+500=680。对。
还要查一条规矩:遗赠不得超过遗产的三分之一。180/680≈26.5%,合规。算术题做完,还要过一道法度——这是遗产题与普通方程题最大的不同。
他给的丈量公式,取 π=22/7,简洁好用。四条常用的:
圆。周长 =22/7×直径;面积 =22/7×半径2。例:直径 7 尺,周长 22 尺,面积 22/7×12.25=38.5 平方尺。
圆环。面积 =22/7×(外半径2−内半径2)。例:外径 10、内径 6,得 22/7×(25−9)=352/7≈50.29 平方尺。
菱形。面积 =两对角线之积的一半。例:对角线 10 与 8,得 40 平方尺。
三角形。面积 =底×高的一半。例:底 12、高 5,得 30 平方尺。
还有一件不是公式的本事:用影子量高度。立一根 5 尺的竿,量出它的影长 3 尺;再量塔的影长 45 尺。因为竿与塔都竖直、太阳光平行,两个三角形相似,所以 5:3=h:45,h=75 尺。这是比例论在工地上的用法,也是欧几里得第六卷最实用的一条。
一道合股。甲出 300 迪拉姆,乙出 500,共赚 240。按出资分:甲得 240×300/800=90,乙得 240×500/800=150。比就是份额,这正是欧多克斯比例论的日常版。
一道换算。1 第纳尔换 12 迪拉姆。用 7 第纳尔买 10 尺布,每尺几迪拉姆?7×12=84,84/10=8.4。换算的本质是乘一个比,不是背一张表。
一道二次。用 24 迪拉姆买布。若每尺便宜 1 迪拉姆,同样的钱可多买 2 尺。问每尺原价几何?
设原价 p,则原来买 24/p 尺;降价后可买 24/(p−1) 尺。条件:24/(p−1)−24/p=2。两边乘 p(p−1):24p−24(p−1)=2p(p−1),即 24=2p2−2p,对消得 p2=p+12——第四类。根数一半 0.5,自乘 0.25,加 12 得 12.25,开方 3.5,减 0.5 得 3,所以 p=4。
验:24 迪拉姆原价 4 可买 6 尺;降价到 3 可买 8 尺,多 2 尺。对。这道题没有几何、没有遗产,只是一桩买卖,却要动二次方程——这就是「代数」这个名字后来能取代「还原与对消」的原因:它管的事,比名字宽。
九世纪的巴格达,学问分三等。宗教之学最尊(经、法、传述);医与天次之(关乎性命与节令);算学再次——它是「工具」,替别人办事的。
但「工具」有工具的好处:它有用,所以有人养。宫廷要定历(斋月与朝觐的日期)、要收税、要分水、要铸钱、要测地。这些活养住了一批人,也养住了一批书。花剌子米本人就做过三件「国家工程」:编天文表(zīj)、写地理志(《大地的形貌》)、改制历法。
更微妙的是:正因为算学不被当成「高等学问」,它才没有被经学的框子管住。它可以吸收印度的数字、波斯的天文、希腊的几何,不必先论证这些外来东西「合不合正统」。边缘位置给了它自由。
暗线到这里可以收一收:一个名字变成两个词,靠的不是地位,是可用。他的书被抄了一千二百年,不是因为写得深,是因为写得能上手。
书要走出去,得先有路。这条路走了三百年,分三段。
第一段:巴格达 → 科尔多瓦。八世纪起,西班牙的科尔多瓦成了另一个学术中心,巴格达的书被商人与学者带过去。十世纪时,科尔多瓦的图书馆藏书号称四十万卷。
第二段:托莱多 → 拉丁欧洲。1085 年基督教势力攻下托莱多,这座城市留下大量阿拉伯文书籍。十二世纪,一批翻译家在此工作:1145 年,切斯特的罗伯特把《还原与对消之书》译成拉丁文,标题写作《Liber algebrae et almucabala》;几乎同时,克雷莫纳的杰拉德译了托勒密的《天文学大成》。
第三段:拉丁 → 方言 → 印刷。1202 年斐波那契在《算盘书》里系统介绍印度—阿拉伯数字;十五世纪出现大批「算法书」(algorismus 教材);1494 年帕乔利的《算术、几何、比与比例大全》把代数写进教科书。到十六世纪,「algebra」已经是一个不用解释的词。
一个细节值得记住:欧洲人把那些数字叫「阿拉伯数字」,其实它们来自印度。花剌子米自己写的书名就叫《印度数字算术》——他从不据为己有。名字记错了,路没走错。
第四幕讲用途:一本算术书的后半部,才是它的活路。
遗产。遗嘱 → 余产 → 份额 → 分数运算;算完还要过「不超过三分之一」这一道法度。
丈量。圆、环、菱形、三角形四条公式,加一条「用影子量高」的相似三角形法。
商队。合股按比分成,换算乘一个比,买布题化归成 p2=p+12。
地位。算学排第三,却因此不受经学束缚,能吸收印度、波斯、希腊三家的东西。
遗产:x−(x/4+10)=500 ⟹ 3x/4=510 ⟹ x=680。
丈量:S圆=(22/7)r2;S环=(22/7)(R2−r2);S菱=d1d2/2。
买布:24/(p−1)−24/p=2 ⟹ p2=p+12 ⟹ p=4。
1145 年,一个叫切斯特的罗伯特的英国人,在西班牙把一本阿拉伯文的数学书译成拉丁文。他给译本起的名字是《Liber algebrae et almucabala》——「还原与对消之书」的直译,只是把两个阿拉伯词原样搬了过去。
他大概没有意识到,「algebrae」这个生造的拉丁词,会在八百年后成为全世界中学课本上的一章。
同一时期,另一本书也在被抄写。它的拉丁译本开头一句是 「Dixit Algorizmi」——「阿尔戈里兹米说」。抄手把这句话当成了作者的名字,于是「Algorizmi」成了一个专名;再后来,它变成了「algorismus」,指一门技艺:用印度数字做计算。
于是发生了一件稀奇的事:一个人的名字,变成了「算法」;一本书的书名,变成了「代数」。同一批抄本,两个词,两条路。而他本人,只在那句「阿尔戈里兹米说」里留下了痕迹。
第二本书讲的事,看起来比第一本简单:怎样用十个符号写出任何数。但它的影响更大。
诀窍只有一条:位置给权。同一个符号写在不同的位置,值差十倍。比如两千零二十六,写作 2026,意思是 2×103+0×102+2×10+6。这条规则今天看来天经地义,当时却是三种记数法竞争的结果:希腊字母记数(α=1、β=2……)、罗马数字(Ⅰ、Ⅴ、Ⅹ)、以及印度的位值制。
位值制胜在三点。一、能写。算盘要求人坐在它面前拨珠,位值制只要一张纸。二、能查。算式留在纸上,别人可以复核,错在哪一步看得见。三、能传。十个符号,抄错一个还认得出;一张算盘,坏了就得重做。
最关键的是那个「零」。没有零,2026 与 226 无法区分;有了零,空位有了名字。印度人在七世纪就给了零一套运算规则,阿拉伯人把它叫 ṣifr(空无),拉丁化成 zephirum,再变成今天的 zero。「零」这个词,本身也是一条旅行路线。
竖式也一并传来。478 加 365:个位 8+5=13,写 3 进 1;十位 7+6+1=14,写 4 进 1;百位 4+3+1=8。得 843。乘法 24×36:24×6=144,24×30=720,相加 864。每一步都写在纸上,每一步都能被人重做一遍——这一点,比答案本身重要。
「算法」不只是「一种算法」。它指一类东西,有四个特征:步骤有限、每步确定、每步可做、有输入有输出。用一道题检验一下。
输入:x2+21=10x。
第一步,化简。已无减项,无需还原;两边无同类项,无需对消。停在原式。
第二步,归型。平方与数在左、根在右,属第五类。
第三步,取半。根数 10 的一半是 5。
第四步,自乘。5×5=25。第五步,减数。25−21=4。第六步,开方。√4=2。
第七步,加与减。5+2=7;5−2=3。
输出:x=7 或 x=3。
七步,没有一步需要「想到」。换一个人,只要识字、会加减乘除、会查根号表,就能得到同样的答案。这就是算法的全部要求:它不要求执行者聪明,只要求执行者照做。
对照希腊的证明:证明要求读者「看出」某条辅助线为什么该画。看不出,就走不下去。算法把「看出」这一步,提前到写书的时候做完了。
把三个人放在一起看,本册的要点就清楚了。
巴比伦(约前 1800)。泥板 BM 13901 第一题:「我把正方形的边与面积相加,得 0;45。」即 x2+x=0.75。步骤:取 1 的一半 0.5,平方得 0.25,加 0.75 得 1,开方得 1,减 0.5 得 0.5。与花剌子米的五步一字不差。
丢番图(约 250)。《算术》用缩写记号表示未知量的各次幂,是符号的先声;但他只认正有理根,主要处理不定方程,没有一般分类,也没有证明。
花剌子米(约 820)。没有记号,却有一般分类(六类)+几何证明+可执行流程,三者齐备,而且写成一本书。
所以「代数之父」这个称号有两种给法:给丢番图,因为他先用了记号;给花剌子米,因为他的书成了教科书。前者是发明,后者是传播。三千年前的巴比伦人已经会配方,可他既没有说清为什么,也没有把方法写全——这一步才是分水岭:从「会做一道」到「会做一类」。
Algoritmi → algorismus → algorisme → algorithm。这四个词形的背后,是词义的三次搬家。
第一次(十二至十五世纪):指「用印度数字计算的技术」,是一门手艺。大学里有「算法课」,教材叫《Algorismus vulgaris》,讲的是进位、加法、乘法、开方。
第二次(十六至十九世纪):词义变宽又变窄。宽的时候泛指「算术」;窄的时候只指「十进制的」。同时,人们已经忘了它原是一个人的名字——十九世纪甚至有人提出,它来自希腊语 algiros(痛苦),意思是「痛苦的算术」。一个误读,流传了近百年。
第三次(二十世纪):1936 年图灵定义「可计算」,1940 年代电子计算机出现,「算法」变成「任何有限步可执行的确定程序」。此时它已经与阿拉伯数字无关,与花剌子米也无关——只剩那个词壳。
暗线的意思在这里显出来:名字比人活得久,但名字的意思会被后人反复改写。他写的是「怎么算」,历史读成了「怎么让机器算」。这不是背叛,是语言的常态:词一旦出门,就不再属于造它的人。
书名太长,欧洲人只取了两个词:al-jabr 与 al-muqābala。前者活了下来,后者只活在拉丁标题里,随后消失。为什么是前者?因为它排在前面,也因为它的意思更有画面感。
jabr 的本义是接骨:骨头断了,接回去。用在方程上,就是把被减去的项「接回」另一边。所以「代数」的字面意思,其实是「复位术」。这个隐喻一直没散:解方程,就是把被缠绕的未知量松开——汉语说「解」,英语说 solve(松开),阿拉伯语说「还原」,三种语言,同一个动作。
中文的「代数」是另一条路。1859 年,李善兰与伟烈亚力合译《代数学》,取「以字母代未知之数」的意思命名。「复位」与「代换」,两个名字,两种想象:一个想着「把东西搬回原位」,一个想着「给未知找个替身」。同一门学问,进门的方向不同。
顺带说一个常被忽略的事实:al-muqābala 没有被选中,但它对消的动作活在了每一个解方程的人手里。词会死,动作不会。
第五幕讲流传:一本书变成两个词,两个词走了一千年。
两个词。al-jabr → algebra;Algoritmi → algorithm。
十个符号。位置给权,零占空位;能写、能查、能传。
四个特征。步骤有限、每步确定、每步可做、有输入输出。
三种传统。巴比伦有算法无证明,希腊有证明无算法,花剌子米三者合。
位值:2026=2×103+0×102+2×10+6。
竖式:478+365=843;24×36=144+720=864。
算法七步:化简 → 归型 → 取半 → 自乘 → 减数 → 开方 → 加减,得 7, 3。
约 780 年生于花剌子模(阿姆河下游,今乌兹别克斯坦希瓦一带)。早年无传记材料。
813—833 年马蒙在位,巴格达的翻译事业最盛;花剌子米在「智慧宫」工作。
约 820 年《还原与对消之书》成书,献于马蒙。前半六类方程与几何证明,后半遗产、丈量、算例。
约 825 年《印度数字算术》成书,讲十个符号与位值制。阿拉伯原文佚,仅存十二世纪拉丁译本。
约 830 年编天文表(Zīj al-Sindhind)、撰《大地的形貌》,另有论犹太历与基督教历的短篇。
约 850 年卒。卒年另有 840、847 两说。
1145 年切斯特的罗伯特在西班牙译出拉丁本《Liber algebrae et almucabala》。十二世纪《Algoritmi de numero Indorum》拉丁译本流传。
1202 年斐波那契《算盘书》系统介绍印度—阿拉伯数字。1494 年帕乔利《算术、几何、比与比例大全》把代数写进教科书。
1591 年韦达用字母表示数;1637 年笛卡尔确立 x, y, z 的用法,六类塌成一行。
1831 年Rosen 在伦敦刊布阿拉伯原文与英译,现代研究自此有据。1859 年李善兰与伟烈亚力合译《代数学》,「代数」成为中文定名。1936 年图灵定义可计算,「算法」获得现代含义。
他的书没有一本留下亲笔。今天能读到,走的是三条不同的路。
第一条:阿拉伯文抄本。《还原与对消之书》现存数部抄本,最早为牛津 Bodleian 图书馆 Hunt. 214(十四世纪),另有哥达、柏林、大马士革等处藏本。这条最可靠,但最晚——原书与现存抄本之间隔了五百年。
第二条:拉丁译本。1145 年切斯特的罗伯特译本、以及克雷莫纳的杰拉德一系的译本,是欧洲人读到的版本。译得不算精细,一些术语被硬搬(algebra 就是硬搬的结果),但骨架完整。
第三条:希伯来译本与再译。十三至十五世纪,一批阿拉伯算书被译成希伯来文,再转译成拉丁文。这条路上丢的东西最多,也最容易被忽视。
三条路合起来,才有本册这些内容。传播链大致是:阿拉伯文原稿 → 抄本 → 拉丁/希伯来译本 → 印刷本(十六世纪起)→ 现代校勘本(Rosen 1831;Rashed 2007)。每一次转手,都是一次可能丢失;每一次丢失,都靠另一条路上的副本补回来。一本书能活一千年,靠的从来不是一本。
一、如果符号只是「方便」,为什么它改变了数学?花剌子米用语言说清了全部规则,可符号一进来,六类立刻塌成一行,代数变成一门可以「推演」的学问。方便到什么程度,就不再只是方便?
二、分类是进步还是权宜?六类让每一类都能被独立执行,也让视野被切成六块。今天的中学生仍在学「先化标准形」——这究竟是分类学的遗产,还是它的残余?
三、「有用」能保证「正确」吗?他的圆面积取 22/7,误差约万分之四,一千年里盖了无数房子、分了无数地。一个长期有用的近似,算不算错?
这三问没有标准答案,也不必有。它们的作用是提醒:本册讲的每一个「解决」,都同时留下了它自己解决不了的地方。
这次不用 10,换一个好剪的数:x2+8x=48。所有长度都是整数,剪起来不费事。
材料:1 厘米方格纸、铅笔、尺、剪刀、胶带。
第一步,画方。剪一个 4×4 的正方形(面积 16),这就是 x2,其中 x=4。
第二步,贴四条。8x 分成四份,每份 2x。剪四条 2×4 的长条(每条面积 8,四条共 32),贴在正方形四边。
第三步,看缺口。四个角各留下一个 2×2 的空缺。剪四块 2×2 的小方(每块 4,四块共 16)补上。
第四步,量边。补完是一个大正方形,边长 4+2+2=8,面积 64。而 16+32+16=64,正好对上。
第五步,回头验。大正方形边长也可以写成 x+4(因为四角各补了 2,两边合计 4)。所以 x+4=8,x=4。代回原式:16+32=48。对。
换一个数再试。把 8 换成 6:四角是 1.5×1.5,不好剪。这就是为什么古人偏爱「根数为偶数」的算例——不是数学需要,是剪刀需要。
材料:六张卡片(或六张便条)、一支笔。
第一步,写正面。六张卡片各写一个类型名与它的样子:平方等于根;平方等于数;根等于数;平方与根等于数;平方与数等于根;根与数等于平方。
第二步,写背面。每张背面写三样:一个算例、一句流程、验算。比如第四类:x2+6x=27;取半 3,自乘 9,加 27 得 36,开方 6,减 3 得 3;验 9+18=27。
第三步,抽题归型。下面六道题,每道正好对应一类,把卡片翻到正面,先把题归型,再翻背面照做。
①2x2=18x ②3x2=27 ③5x=45 ④x2+6x=27 ⑤x2+12=7x ⑥4x+5=x2
第四步,对答案。① x=9;② x=3;③ x=9;④ x=3;⑤ x=3 或 4;⑥ x=5。全部代回去验一遍——验算不是多余的一步,它是这套方法唯一的安全带。
第五步,加两道「陷阱题」。看能不能识别出来:x2+4=0(无正数答案);x2+5=2x(根号里是负的,按他的说法「不可能」)。
后代一:竖式算术。十二至十六世纪的「算法书」把位值制编成一套课堂练习:先认符号,再练加法,再练乘法,最后练开方。这套练习一直活到今天的小学课本里。它是「算法」最成功的一次普及——成功到没人再觉得它是一种思想。
后代二:求根公式与它的尽头。十六世纪,卡尔达诺与费拉里给出三次、四次方程的求根公式,用的还是「归型+配方」的老思路:把方程化成标准形,再套一个可执行的流程。可是五次方程走不通了——1824 年阿贝尔证明:一般的五次方程没有根式解。这不是「还没找到」,是「不可能有」。三千年的算法传统,在这里第一次撞到墙。
后代三:可计算性。1936 年,图灵为了回答「什么问题是能算的」,造了一个假想的机器:一条无限长的纸带、一个读写头、一张规则表。这台机器做的事,正是花剌子米描述过的事——照着一张表,一步一步改纸带上的符号。差别只在:图灵证明了有些事它做不到。
三代连起来看,才看得清本册的位置:他给了「能算的」那一半,图灵划出了「不能算的」那一半。两半合起来,才是完整的图景。一门学问成熟,往往不是因为它能回答更多,而是因为它知道了自己的边界在哪。
公案一:谁先发明了代数?巴比伦泥板(约前 1800)已有配方算例,比花剌子米早两千六百年;丢番图(约 250)已有缩写记号。可为花剌子米辩护的理由是:他第一个给出一般分类与可执行流程,并写成教科书。「发明」与「成立为一门学问」,不是一回事。
公案二:他的书里到底有没有几何证明?现存抄本的图多为后世补绘,有些学者据此认为几何论证是后加的。但正文中「补四个角」「画正方形」等文字描述与图一一对应,文字本身已构成论证。本册取「有证明」一说,同时承认图版不可尽信。
公案三:那些数字是「阿拉伯」的还是「印度」的?符号源于印度,经阿拉伯人传入欧洲,故欧洲称「阿拉伯数字」;而花剌子米自己的书名就写着「印度计算」。名字记错了,路没走错——这类误名在科学史上比比皆是。
延伸阅读:F. Rosen,《The Algebra of Mohammed ben Musa》(1831,阿拉伯原文与英译);S. Gandz 等,《The Algebra of Abu Kamil》(相关导论);C. B. Boyer,《A History of Algebra》;R. Rashed,《Al-Khwārizmī: Le commencement de l'algèbre》(2007);O. Neugebauer,《Mathematische Keilschrift-Texte》;J. Høyrup,《Lengths, Widths, Surfaces》;D. E. Knuth,《The Art of Computer Programming》vol. 1。
这一册的主角没有留下一条定理以他的名字命名,也没有任何一句妙语传世。它讲的是一个更朴素的问题:怎样把「会算」变成「谁都能算」?花剌子米的答案是:把方法写成步骤,把步骤写成书。
全册骨架五步:绿洲与书房(引子)、没有 x 的算术(第一幕)、还原与对消(第二幕)、一张图为什么算数(第三幕)、遗产与商队(第四幕)、两个词(第五幕)。数学层集中在 p.7—p.9、p.14—p.16、p.21—p.23、p.28—p.30、p.35—p.37。
这册的数学比前一本容易:只有一次与二次方程,没有极限,没有无穷。难点不在算,在「为什么只有六类」——那需要一点「只许正数」的想象力。孩子若卡住,可以只记住一句:因为不认负数,所以方程只能有六种摆法。
两页动手做都很适合饭桌上做:p.44 剪纸配方(全部整数,剪得开),p.45 做六张卡片(做完就能自己出题)。剪刀与卡片,比公式更容易记住。
一、为什么他不发明符号?p.10 给了两个理由:读者是不学几何的计算者,符号对他们是门槛;手抄时代啰嗦反而可靠。可以问孩子:如果一本书要抄一百遍,是希望它写得漂亮,还是写得不容易抄错?
二、一张图怎么能当证明?p.21 的四步,每一步都在图上有一个动作:画方、贴条、补角、量边。可以拿 p.44 的剪纸做一遍。孩子剪完会明白:那个凭空出现的「二十五」,其实是四个角。
三、名字重要吗?p.34 与 p.38 讲了两条线:一个名字变成「算法」,一个书名变成「代数」,而他本人只留下一句「阿尔戈里兹米说」。可以问:如果一件事被记住、而做它的人被忘掉,这算成功还是失败?
最后一点提醒:本册的年代多为「约」,著作的成书年份都不可考。读到「约 820 年」,不妨停一下:为什么一个一千二百年前的年份,只能给出一个大概?这个问题会带孩子走进抄本与文献的世界。
《数学家的故事》第三辑 · 第 22 册
花剌子米 · 移项与还原
明线:根与平方的名目 · 六类方程 · 还原与对消 · 配方的几何证明 · 遗产与丈量 · 位值制与算法
暗线:一个名字变成两个词 · 先让人用得着,再让人明白为什么 · 词会死,动作不会
时代:约 780—约 850 · 阿拔斯王朝(花剌子模—巴格达;下延至 1145 拉丁译本、1202 斐波那契、1494 帕乔利、1936 图灵)
主典:《还原与对消之书》(约 820,阿拉伯原文存抄本)·《印度数字算术》(约 825,仅存拉丁译本)·《大地的形貌》·天文表 Zīj al-Sindhind
体例:扉页与题解 2 页 · 引子 3 页 · 五幕 35 页(每幕:故事 1 · 数学 3 · 故事/暗线 1 · 交汇 1 · 小结 1)· 收束与留问 3 页 · 动手做 2 页 · 小典 2 页 · 延伸 2 页 · 家长导读 2 页 · 版权 1 页,共 52 页。
《数学家的故事》第三辑十册:欧多克斯 · 花剌子米 · 朱世杰 · 卡尔丹诺 · 纳皮尔 · 拉普拉斯 · 李善兰 · 威尔斯特拉斯 · 康托尔 · 哥德尔。本册为第三辑第二册。
正文中的年代、人物、文献均据 p.47 所列材料与各页注疏;数值例(六类算式、配方、遗产、丈量、汇率、买布二次题、位值竖式)均为本册实算。插画为写意示意,不追求器物形制与历史场景的复原。