购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.2 秦九韶的“大衍总数术”

自《孙子算经》提出“物不知数”问题以后,引起了人们的很大兴趣。《孙子算经》所示算法的思路启发人们认识到,求解一次同余式组

N≡R1(moda1)≡R2(moda2)≡R3(moda3)

的关键是在寻找三个与1同余的数的乘积,即设计辅助系数K 1 ,K 2 ,K 3 使如下同余式成立:

K 1 a 2 a 3 ≡1(moda 1

K 2 a 1 a 3 ≡1(moda 2

K 3 a 1 a 2 ≡1(moda 3

那么,所求数N依下式求得:

N=R 1 K 1 a 2 a 3 +R 2 K 2 a 1 a 3 +R 3 K 3 a 1 a 2 -pa 1 a 2 a 3

(式中p非负整数)当然,在简单的情况下,K i可以通过观测试算得出,可它的一般方法呢?此外,如若“物不知数”设问的三个模数不是两两互素,“孙子歌”便行不通。因此,中算家在深入研究“物不知数”问题时,必然面临如何求解模数不两两互素的同余式组:

N≡R 1 (mod A 1

≡R 2 (mod A 2

……

≡Rn(mod A n)

式中Ai称为“问数”,一般不两两互素。秦九韶的“大衍总数术”便是解决这一问题的杰出创造。

1247年,秦九韶《数书九章》问世。全书18卷,81道数学问题按应用分为9类:大衍、天时、田域、测望、赋役、钱谷、营建、军旅和市物。《数书九章》开篇第一卷“大衍类”问题,就是一次同余式组问题,而其中“大衍总数术”是对一次同余式组的辉煌总结。

“大衍总数术”包括两大部分:

其一是化问数为定数。即将问题所给数据标准化,“问数”即模数。一般说来,模数{Ai}并不两两互素,因此,首先需要把模数{Ai}约化为一组两两互素的模数{ai}。

其二是运用剩余定理的求解程序,计算

秦九韶为式中各数设定了一套特别的术语:

定数a i ,且两两互素:(a i ,a j )=1

衍母M=a 1 a 2 a 3 ...a n

衍数M i =M/a i

乘率K i ,满足Kig i ≡1(moda i ),

奇数g i ,g i 〈a i ,若g i =1,则1(单数)即为乘率

用数K i M i

求乘率K i 的算法就是著名的“大衍求一术”。秦九韶化问数为定数的基本算法是:两两连环求等,约奇弗约偶。

所谓“连环求等”,即是A 1 ,A 2 ,……,A n要两两相见,不重不漏。具体做法是先以A n与A n-1,……,A 2 ,A 1 求等相约,尔后以A n - 1 与A n-2,……,A 2 ,A 1 求等相约,最后是A 2 与A 1 求等相约。这样经过(n-1)“变”,可以约化完毕,得到一组互素的定数{a i }。在每一变中,各元数a i 的地位不尽相同。例如,在第一“变”中,A n要与n-1元数配对相约,而其它元数仅只与A n配对相约一次,为了表示这种区别,秦九韶将元数A n称之为“偶”,而把其余的元数A n-1,……,A 2 ,A 1 皆称为“奇”。

所谓“约奇弗约偶”,是说在第k变中,一般是用等数去约处于“奇”位的元数A j (1≤j〈n-k+1),而不约处于“偶”位的元数a n-k+1 .只是在特殊的情形才有例外。对此,秦九韶特加注说明“或约得五,而彼有十,乃约偶弗约奇”。其意是说,只有在“约奇弗约偶”后仍有等数,而“约偶弗约奇”结果互素的情形,才“约偶弗约奇”。这种情形秦氏称为“反约”。

“大衍类”第八问“积尺寻源”是“求等相约”的典型算例。特以此例说明秦氏“大衍总数术”的解算过程。

问:欲砌基一段,见管大小方砖、六门砖、城砖四色。令匠取便,或平或侧,只用一色砖砌,须要适足。匠以砖量地计料,称:用大方料,广多六寸,深少六寸;用小方,广多二寸,深少三寸;用城砖,长广多三寸,深少一寸;以阔深少一寸,广多三寸;以厚广多五分,深多一寸;用六门砖,长广多三寸,深多一寸;以阔广多三寸,深多一寸;以厚广多一寸,深多一寸;皆不匼匝,未免修破砖料稗补。其四色砖:大方方一尺三寸,小方方一尺一寸,城砖长一尺二寸,阔六寸,厚二寸五分;六门砖长一尺,阔五寸,厚二寸。欲知基深广几何。

答曰:深三丈七尺一寸,广一丈二尺三寸。

术曰:以大衍求之。置砖方、长、阔、厚为元数,以小者为单,起一,先求总等,存一位,约众位[列位多者,随意立号],乃为元数。连环求等,约为定母。以定相乘为衍母,各定约衍母得衍数,满定去之得奇。奇定大衍得乘率,以乘衍数得用数。次置广深多少数,多者乘用,少者减元数,余以乘用,并为总。满衍母去之,不满得广、深。

如设地基的宽度和进深分别是x,y(单位:分),那么本题就是要解两个同余式组:

x≡60(mod130)≡30(mod120)≡20(mod110)≡30(mod100)

≡30(mod60)≡30(mod50)≡5(mod25)≡10(mod20);

y≡-60(mod130)≡-10(mod120)≡-30(mod110)≡10(mod100)

≡-10(mod60)≡10(mod50)≡10(mod25)≡10(mod20);

下面以广为例,说明解算过程。

表2.1 “积尺寻源”问数的约化程序

第一步,以八音(金、石、丝、竹、匏、土、革、木)为号记其问数,从大到小“锥形置之”。按“两两求等”原则进行约化(见表2.1)。

经过求等相约之后,原问数约化为13(金),8(石),11(丝),1(竹),3(匏),1(土),25(革),1(木),此八数两两互素,称为“定数”。原同余式组可简化为:

x≡60(mod13)≡30(mod8)≡20(mod11)

≡30(mod3)≡5(mod25);

第二步,原同余式组已转化为“孙子问题”。下面求“乘率”Ki:

K 1 ×8×11×3×25≡1(mod13)

K 2 ×13×11×3×25≡1(mod8)

K 3 ×13×8×3×25≡1(mod11)

K 5 ×13×8×11×25≡1(mod3)

K 7 ×13×8×11×3≡1(mod25)

对左边进行“模运算”,得到同解的同余式:

K 1 ×9≡1(mod13)

K 2 ×5≡1(mod8)

K 3 ×1≡1(mod11)

K 5 ×1≡1(mod3)

K 7 ×7≡1(mod25)

至此,原同余式组转化为求解单个同余式:

Kig i ≡1(moda i

式中K i ,称为“乘率”,g i 称为“奇数”,即:

g i =a 1 …a i -1a i +1…-sia i

s i 为非负整数。

秦九韶给出了求解K i 的规范化算法——“大衍求一术”,原术如下:

大衍求一术云:置奇右上,定居右下。立天元一于左上。先以右上除右下,所得商数与左上一相生,入左下。然后乃以右行上下,以少除多,递互除之。所得商数,随即递互累乘,归左行上下。须使右上末后奇一而止。乃验左上所得,以为乘率。或奇数已见单一者,便为乘率。

下面给出求K 7 ×7≡1(mod25)的推演过程:

求得K 7 =18,同理可求得K 1 =3,K 2 =5。

本问的最后结果可由下式推出:

N≡R 1 K 1 M 1 +R 2 K 2 M 2 +R 3 K 3 M 3 +R 5 K 5 M 5 +R 7 K 7 M 7 (mod M)

其中:R i =60,30,20,30,5;(i=1,2,3,5,7.下同)

K i =3,5,1,1,18;

a i =13,8,11,3,25;

M=a 1 a 2 a 3 a 5 a 7

M i =M/a i

求得N的最小整数解是1230。 68eMT4GmNFRJAg8HTRa4BlKIixiTyAp9QMkQ1UtJ8tpaaULFGpFZbqJRdK0zahYm

点击中间区域
呼出菜单
上一章
目录
下一章
×

打开