贾宪

郭书春

贾宪籍贯、生卒年不详,活动于 11 世纪上半叶。数学。

贾宪于北宋仁宗时任左班殿直,是三班小使臣,属武职。他的老师楚衍是北宋前期的著名天文学家、数学家,开封胙城(今河南延津东北)人, “于《九章》、《缉古》、《缀术》、《海岛》诸算经尤得其妙”,天圣元年(1023)与宋行古等修《崇天历》,后与周琮等共同主持司天监。时人称贾宪“运算亦妙,有书传于世”。贾宪著书有两种,一为《黄帝九章算经细草》9 卷,一为《算法■古集》6 卷。后者已失传。原以为前者也已失传。察杨辉以贾宪《黄帝九章算经细草》为底本作《详解九章算法》,在序中自称“择八十题以为矜式,自余一百六十六问,无出前意,不敢废先贤之文,删留题次,习者可以闻一知十”,而现存《宜稼堂丛书》本《详解九章算法》仅商功、均输、盈不足、方程、勾股四卷半就有 92 问含有《九章算术》本文、魏刘徽注、唐李淳风等注释之外的内容,若全书,则更远远超过 80 问;又杨辉自述他在《九章算术》9 卷中“恐问隐而添题解,见法隐而续释注,刊大小字以明法草,僭比类题以通俗务”,知杨辉所作者仅“解题”、“比类”及部分注释,因而断定,贾宪为《九章算术》所作细草亦系杨辉所未废的先贤之文而被照录;现存杨辉《详解九章算法》(包括《永乐大典》卷 16343,16344 所引及《宜稼堂丛书》本)中《九章算术》本文之外用大字排印、抄录的题目、法(术)、草及这些法(术)、草中部分小字的注释,便是贾宪细草的内容,大约占贾宪全书的 2/3。唐初李淳风

等整理刘徽注《九章算术》等汉唐十部算经,是为中国筹算数学框架奠基和理论体系形成时期的总结。此后约 400 年间,数学在天文历法运算中的应用及改进乘除法方面有所进步,其他方面进展却不大,而在孕育着新的突破。实现这个突破,把中国数学推向一个新阶段的正是贾宪。他改进了传统的开方法,创造了开方作法本源和增乘开方法,对中国古代数学的算法理论做出杰出贡献。

贾宪的第一个贡献是提出立成释锁法并创造开方作法本源。求二次及其以上次数方程的正根,中国古代统称为开方术。开方在宋元时又称为释

锁。《九章算术》对求形如 A, A的正根提出了完整的开平方、开立

方程序,但在求根的每位得数的最后一步及求减根方程时显得繁琐。魏刘徽、南北朝《孙子算经》等作了某些改进。贾宪则继承了《九章算术》、刘徽、《孙子算经》等的长处,弥补了它们的不足,提出了立成释锁法。如开平方的程序是:作 4 行布算,依次是商(根)、实(被开方数或常数项)、方法(一次项系数)、下法(二次项系数,此处是 1)。将下法自右向左隔一位移 1 步,至实的首位而止;以商的第 1 位得数乘下法,置于方法,以上

商乘方法,减实;以 2 乘方法,退 1 步为廉,下法退 2 步,得出减根方程,

再如法求第 2 位得数。贾宪的方法与现今方法无异。立成是唐宋时期历算家列的算表。顾名思义,立成释锁法是利用一种算表进行开方。这种算表便是开方作法本源,今称贾宪三角。在欧洲,它被称为帕斯卡三角,是法国数学家帕斯卡在 17 世纪初创造的,比贾宪晚出 600 年左右。贾宪三角是将整次幂二项式系数(a+b)n(n=0,1,2,⋯)自上而下排成一个三角形,如图 1。■

图 1“开方作法本源”图(据《永乐大典》卷 16344)

贾宪三角下面有五句话,前三句“左■乃积数,右■乃隅算,中藏者皆廉” 说明了它的结构,即积、隅、廉的位置,后二句“以廉乘商方,命实而除之”,提示了积、隅、廉在立成释锁法中的应用。显然,利用贾宪三角, 当时人们已经把开方术从这之前只能开二次、三次方(王孝通有形如 x■

+Bx■=C 的 4 次方程,但通过两次开平方解决)推广到开任意高次方。贾宪提出了贾宪三角的造法,即“增乘方求廉法”,又称“释锁求廉本源”。求 n 次方的各廉,置 n-1 位,另在最下置隅算。自隅算起,自下而上增入上位,至首位而止。再以隅算如此自下而上升增,每次低一位而止,则得n 次方即贾宪三角第 n+1 行各廉。用现代符号写出,便是

第1位 / 1 / C1

第2位 / 1 / C1

第3位 / 1 / C1

2

n

2 3

n-1 n

⋯⋯/⋯⋯⋯⋯⋯⋯⋯⋯

⋯⋯/⋯⋯⋯⋯⋯⋯⋯⋯

第n - 1位 / 1 2 3 4 Cn−1

隅算 / 1 1 1 1 Cn−1 n

则第n + 1行为1,C1 ,C2,C3 , ,Cn-1,Cn (其中Cm只是表

n n n n n n

示其数值,并非说贾宪已有组合表示法)。求贾宪三角各廉的关键是递加, 即变乘法为加法。在我国,自唐中叶起,人们适应商业发展的需要改进筹

算技术,其中最重要的是化乘除为加减。贾宪很可能受此启发,创造了这种增乘方求廉法。同时,这种增乘方法可以推广到开方过程中,这就是增乘开方法。

创造增乘开方法是贾宪最重大的贡献。这是用递增方法即随乘随加方法达到与立成释锁法运用贾宪三角各廉异曲同工的效果。现存《详解九章算法》所录贾宪增乘开方法的内容有:少广章开平方三问后的“增乘开平方法”及第 3 问的增乘开平方图;开立方第 1 问之下的“增乘方法草”, 法、草合一;纂类章载“增乘开平方法”、“增乘(开立)方法”;少广章另设开立圆题中所提出的开立圆法、草中,在求出实之后均云“开增乘立方除之”,以及另设开四次方问题之下提出的“递增三乘开方法草”,法、草合一。其递增三乘开方法的程序是:(1)分 6 行布算,自上而下依次是商、实、立方、上廉、下廉、下法,被开方数置实处,下法置 1,于实的个位之下,相当于求解 x4=A 的正根。将下法自右向左每隔 3 位移 1 步。设 4 次方根有 n+1 位整数,这相当于令 x=10nx1,变成求 104nx41=A 的正根。(2) 上商得数 10nx1,以上商乘下法,入下廉,乘下廉入上廉,乘上廉入立方, 乘立方,减实,余实为 A-104nx41。(3)为求商的第 2 位得数,须先求减根方程:以上商乘下法,入下廉,乘下廉,入上廉,乘上廉,入立方,立方为 4·(10nx1)3。(4)又以上商乘下法,入下廉,乘下廉,入上廉,上廉为6·(10nx1)2;又以上商乘下法,入下廉,下廉为 4·10nx1。(5)立方向右退 1 位,上廉退 2 位,下廉退 3 位,下法退 4 位,便得到减根方程

(10n-1x2)4+4·(10nx1)(10n-1x2)3+6·(10nx1)2(10n-1x2)2+ 4·(10nx1)310n-1x2=A-104nx41。

(6)商得第 2 位得数,对减根方程重复上述程序,直到开方结束。

以贾宪另设的开三乘方题目4 1336336为例,上述各步骤如下:

(1)布位定位

(2)第一位

(3)作法求第二位

3

3

1336336

526336

526336

立方

27

108

上廉

9

27

下廉

3

6

下法

1

1

1

(4)

(5)

(6)商第二位

3

3

34

526336

526336

0

立方

108

108

131584

上廉

54

54

5896

下廉

12

12

124

下法

1

1

1

显然,这种开方法比立成释锁法简便、整齐。只要作好第一步布位定位, 掌握退位,其余的程序对任何次方都相同,尤其是求减根方程时,不必一下子计算若干积及乘方的和,而是随乘随加,把复杂的计算变成一位乘法与简单的加法,并且有很强的程序性。开方次数愈高,商的位数愈多,愈

显出其优越性。递增三乘开方法的提出,说明贾宪不仅把传统的开方法推广到开高次方,而且也已经把增乘开方法用于开高次方。中国古代数学密切联系实际,人们善于把一个数看成线段,把两个数之积看成面积,把三个数之积看成体积,并且赋予开平方法、开立方法以几何意义,4 次及其以上的开方在当时实际生活中很难找到其原型,它完全是数学自身与数学理论发展的产物,是个重大突破。后来在阿拉伯地区也产生了类似的方法, 而在西方,则是意大利的鲁菲尼与英国的霍纳先后在 1804 年与 1819 年创

造了同类开方法,故称为鲁菲尼-霍纳法或霍纳法,晚了近 800 年。

对《九章算术》的术文进行进一步抽象,是贾宪对中国古代数学的算法理论的又一贡献。《九章算术》勾股章的解勾股形问题的术文都是特定问题的具体算法,不是抽象性术文。贾宪根据题目的不同类型分别抽象出股弦较与勾求股弦法作为引葭赴岸、系索、倚木于垣、勾股锯圆材、开门去阃诸问的普遍方法,勾股较与弦求勾股法作为户高多于广类题目的普遍方法,股弦和与勾求股弦法作为竹高折地类题目的普遍方法,勾弦较与股弦较求勾股法作为持竿出户类题目的普遍方法。这些方法,不再涉及题设的对象及具体数字,只就勾、股、弦及其和差立论,非常抽象。如“勾弦较股弦较求勾股法曰:二较相乘,倍之,开平方为弦和较。加股弦较为勾。以弦和较加勾弦较为股”,即

(a + b) − c =

a =

b =

2(c − a)(c − b),

+ (c − b),

  • (c − a)。

贾宪又将《九章算术》的勾股容方问的术文扩充为勾股旁要法。在自注中提出了一个重要原理:“直田斜解勾股二段,其一容直,其一容方,二积相等。”(如图 2)实际上,从公共弦上任一点作两条分别平行于长方形邻边的垂线,则两勾股形所容的两长方形必相等。这一原理在中国古代出入相补中起着重要作用。贾宪针对勾股容圆问的术文提出了勾股求弦和较法:“勾股相乘,倍之为实;勾股求弦,加勾、股为法,实如法而一。” 显然,这是依据刘徽所补充的圆径公式把圆径与弦和较联系起来,即

(a + b) − c =

2ab

a + b + c = d

贾宪对勾股章测望诸术,以及方程章方程术,盈不足章盈不足诸术,均输章诸术,也都作了进一步抽象。

■ 图 2

此外,贾宪还对许多问题提出了与《九章算术》不同的或全新的解法。如均输章九节竹问,《九章算术》用衰分术求解,贾宪则分别用课分法、减分法、方程术求解。贾宪将今有术改称互换术,提出了合率术、分率术等概念。所谓合率术是除数为几个数(整数或分数)的除法,包括少广术及凫雁类问题,分率术则是传统的鸡兔同笼问题解法,还包括其率术、反其率术等。对盈不足章许多算术问题,贾宪都分别用互换术,合率术、分率术提出了新的解法。这些方法都以其数学特征命名,比《九章算术》等著作的名称更准确,更科学。

贾宪的《黄帝九章算经细草》可以看成另一种形式的《九章算术注》,

它不再像刘徽注那样以阐释《九章算术》的数理,证明其命题的正确性为主,将自己的新方法、新思想寓于对《九章算术》术文的分段阐释中,而是以发展《九章算术》的方法,并作运算细草为主,所采取的形式是在《九章算术》本文和刘徽、李淳风注之后,对其方法进行改写、抽象,甚至更新。因此,《黄帝九章算经细草》对后来,尤其是宋元数学产生了直接的巨大的影响。首先,它被南宋杨辉取作撰写《详解九章算法》(1261)的底本,贾宪对各种算法的抽象、创新,对若干问题的不同解法的探索,成为杨辉作解题、比类,特别是撰纂类,对《九章算术》按方法重新分类的基础,也成为明吴敬、程大位著述的滥觞。其次,贾宪的增乘开方法,中经刘益(12 世纪),到南宋秦九韶著《数书九章》(1247)提出正负开方术,发展为求高次方程正根的十分完备的方法。对高次方程的研究,也促进了天元术即设未知数列方程的方法的诞生。方程论是宋元数学最重要、最有成就的课题,盖导源于贾宪。还有,贾宪三角不仅用于高次开方,而且成为后来人们解决垛积问题即高阶等差级数求和问题的有力工具。朱世杰《算学启蒙》(1299)、《四元玉鉴》(1303)系统解决了这类问题。他用平行于左右两斜边的两组平行线将贾宪三角中诸数字联结起来,容易发现,某行诸廉中任一系数恰恰等于其在上一行中两肩上系数之和,并且,第 p 条斜线上前 r 个数和恰恰等于第 p+1 条斜线上第 r 个数,即

1

Σ p! i(i+l)(i + 2)

1

(r + p - 1) = (p + 1)! r(r + 1)(r+2)

(r + p) ,令p = 1,

2,3,⋯就得出朱世杰的高阶等差级数求和公式。这也相当于将贾宪三角中前一斜线前 r 项之和落到下一斜线的第 r 项上,这就是为什么朱世杰将他的求和公式自 p=2 起依次称为落一形垛(三角垛)、三角落一形垛(撒星形垛)、撒星更落一形垛(三角撒星形垛)、三角撒星更落一形垛,它们实际上就是贾宪三角的第 2,3,4,5 条斜线。可见,宋元数学的大多数成就都是在贾宪工作基础上发展起来的。贾宪是宋元数学高潮的主要奠基者和推动者。