加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

中国剩余定理即孙子定理的五种解法

(2013-10-05 12:29:36)
标签:

教育

 

                           中国剩余定理即孙子定理的五种解法

 

                                                —— 学习初等数论心得笔记  

                                                          2013-10-04 博文   2015-12修改

 

     “中国剩余定理”是公元5-6世纪、我国南北朝时期的一部著名算术著作《孙子算经》中的一个“物不知数”的解法问题:今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二。问物几何?答曰:二十三。

    《孙子算经》中虽然也有计算方法的叙述,如术曰:「三三数之剩二,置一百四十,五五数之剩三,置六十三,七七数之剩二,置三十,并之,得二百三十三,以二百一十减之,即得。凡三三数之剩一,则置七十,五五数之剩一,则置二十一,七七数之剩一,则置十五,即得。」但也仅仅知道140+63+30=233、233-210=23,得物数23。至于接着说的剩一、置70、置21、置15,应该是说140=70*2、63=21*3、30=15*2的来源,而2、3、2又正是剩余数、210又正是除数3、5、7的最小公倍数的2倍。综合之,解的算式为70*2+21*3+15*2-2*3*5*7=23。虽然如此,但仍不知为什么要这么算,还有, 70、21、15是怎样来的?等等,如读天书。如果换一个题目你能算吗?连照搬都没法搬。

    这个问题,过了八、九百年,到了宋代,才有秦九韶在《算书九章》中给以解答。但现代人读古代数书,正如读古代医书一样,绝大多数是丈二和尚模不着头了。

  “中国剩余定理”的现代数学提法是,解一元一次同余式方程组:

X≡2  (mod 3)

X≡3  (mod 5) 

X≡2  (mod 7)

    初等数论中有解法,得X最小值为23,通解为X=23 + 105K。但因为原理很难理解,所以也只能按公式规定的步骤与方法,依样画葫芦的计算罢了。时间一长也就忘光了。由此可见,“中国剩余定理”的理论及计算方法,还达不到普知的地步,不像一元二次方程的公式,初中生都知道公式怎样来的,怎样应用的。

    若要问我:你对“中国剩余定理”的态度是怎样的呢?回答只有两个字:“敬畏”。

 

    其实“中国剩余定理”,就是解一组带余除法的不定方程:

X÷3=A…2

X÷5=B…3

X÷7=C…2,

  若避开难点,换个角度看,那么解这组方程,不一定非用“同余式方程组”的解法。就我所知,有五个方法:

一、枚举法

二、解不定方程法

三、逐级满足法

四、化为相同除数的同余式法、

五、才用到典经的、不同除数的同余式组解法

    现将陈景润所著《初等数论Ⅰ》中的一个习题为例,用五种方法解算,可以对比。

试解下列同余方程

X (mod  7 )

X (mod  9 )

X (mod  5 )      X

 

                                      一 枚举法

 

X≡2  (mod  7 )           X÷7=A…2        X=7A+2

X≡5  (mod  9 )   相当于  X÷9=B…5   →   X=9B+5

X≡1  (mod  5 )           X÷5=C…1        X=5C+1

    枚举法就是按A=0、1、2、3、4…    B=0、1、2、3、4…   C=0、1、2、3、4…

代入各式,计算各式的X,当三个X相同时,就是一个解。

   A、B、C    0           4 …     10    11    12 …   16   17   18… 

   X         2       16   23   30…  65   72    79    86…    

     X       5   14    23   32   41 … 86

       X           11   16   21 … 46   51    56    61 …    81   86  … 

   即,当A=12、B=9、C=17时,X 都等于86。所以最小 X=86。由于7、9、5的最小公倍数是315,所以,通解   X=86+315K  (K=0、1、2、3、…)

    枚举法就是凑,很‘笨’,但也最直观。适合小学生学习。也可用电子表格计算,那太快捷了。

 

                                       二      解不定方程法

X=7A+2

X=9B+5     →9B+5=7A+2    →9B=7A+2-5=7A-3    →B=(7A-3)/9

X=5C+1     →5C+1=7A+2   →5C=7A+2-1=7A+1    →C=(7A+1)/5

    由B=(7A-3)/9,算得:当A=3时,B=2,但A=3时,C=(7A+)/5=4.4。由于A、B、C只能是整数。所以 3、2、4.4这一组,不符合要求,要重算A。又由于B=(7A-3)/9的分母是9,所以下一个A,只能在3的基础上,增加一个9的倍数,所以A只能取12、21、30、39…有了A,再算B、C,当A、B、C全是整数时,才合格。结果如下:

             C

            4.4

12           17

21     16       29.6

可见,只能取A=12 、B=9  、C=17 , 代入原式:

X=7A+2=7*12+2=86

X=9B+5=9*9+5=86

X=5C+1=5*17+1=86

得 X=86、通解为X=86+315KX=86、通解为X=86+315K。实际上,这仍然是枚举法,只是枚举个数减少一些而已。

 

    逐级满足法

 

这个方法的基本思路是:先解算出合符第一个方程的X1。再解算出合符第一、第二个方程的X2,令X2=X1+P1。关键是P1要保持第一个方程中的倍数要求,又要合符第二个方程中的剩余要求。再解算出合符第一、第二、第三个方程的X3,令X3=X2+P2,关键是P2要保持第一第二两个方程中的倍数要求,又要合符第三个方程中的剩余要求。这样逐级解算,满足全部条件。

P要同时考虑两个方程的倍数关系如7A9B,又要考虑两个余数关系,如余2、余5,方程数一多,处理时要拐几个弯,方法不易理解。

最近,我在作《数论—余数习题集》时,对“逐级满足法”作了改进。把第一个方程的通解,直接作为第二个方程的初值,不作任何转弯,就同时解决了两个方程之间的相关关系及余数关系,变得容易理解,容易操作、便于列式。这可以说是我的又一个心得罢。

仍按原例: X除以72、除以95、除以51,求最小X

答:最小X=86  通解 X =86 315 N ( N=123 )

 已知:

X (mod  7 )           X÷7=A        X=7A2

X (mod  9 )   相当于  X÷9=B      X=9B5

X (mod  5 )           X÷5=C        X=5C1

ABC都是整数,可用K统一表示,且不论其具体数值。

解算步骤:

1 先解第一个方程X÷72的通解X1。一般都很容易,即:

通解X1=余数+除数的倍数,例中X1=27A 。其中余数就是最小解X0=2,加上7的最小公倍数的A倍,就是通解X1=27A

X1是一个数列,其中总有一个数能满足所有方程,关键在于A是多少,又怎样定?A怎样定呢?现在不能定。因为要考虑到它能满足第二个方程,所以到那时才能定下来。

 

2、第二个方程。X÷95,此时的X首先应满足本方程要求: (X5)÷9 = K  (K是整数)。但同时又要满足第一个方程,既然X1可以满足所有方程,所以就干脆用第一方程的通解X1代替第二方程的未知数X ,即用(X1)取代X。即应满足 (X15)÷9 = K,才顾及了两式。

注意,(X15)÷9 =K这种形式的方程,是有规律的,即:

(第一方程的通解X1=27A   第二方程的余数5 )÷第二方程的除数9=整数K

且以下各方程也都是这样的规律,亦即:

( 上一个方程的通解 本方程的余数 )÷本方程的除数 整数K

现在有了 (27A5)÷9 =K ,就整理为(7A3)÷9 = K。这时两个余数就自动合并了。

       解此 (7A3)÷9 = K方程,便得A=3 K2

于是  X1=27A=27×3=23。此时,就把X123作为第二个方程的最小解,转为X2,即X223。再加上79的最小公倍数7×9=63的倍数,得通解X22363M。这个X2,既满足第一个方程又满足第二个方程。

X2也是一个数列,其中总有一个数,能满足所有方程,所以就是下一个方程的未知数初值了。关键在于M是多少。M怎样定呢?现在不能定。要考虑到它能满足第三个方程。到那时才能定下来。

至此,得到一个同余式  X223  (mod  63 ),实际上它是

X (mod  7 )         

X (mod  9 )   二个同余式的共同解。

 

至于用什么方法来解  (7A3)÷9 = K  这个二元一次不定方程呢?(7A3)÷9 = K也就是7A9K = 3在陈景润所著《初等数论Ⅰ》中,有一个手算方法,先用“辗转相除法”得到各次余数,直到余数为 1 ,再反求出满足余数“ 1 时的XK的新系数,再通过“同余式”的转换,转换成己知余数(如本例的3),才得到最终的X的系数A。整个过程步骤多。反求XK的新系数时、转换成己知余数时,都颇费工夫,我见了生畏。还不如老老实实的试算、凑数。

(7A3)÷9 = K   AK的整数解,

         列表凑罢:

    7A     (7A3)     K (7A3)÷9

                            0.33

                                0.44                 

               21        18                  好了,K是整数了

              不必算了。

A3K2 。其实K仅起检验作用,是整数就行了,没有其他用处。

解二元一次不定方程最好的方法,当然是编个电脑程序。我已经编就了,请用吧

3、第三个方程。X÷51,此时X首先应满足本方程要求: (X1)÷5 = K,又要满足第一、第二个方程。既然X2可以满足所有方程,所以就干脆用第二方程的通解X2代替第三方程的未知数X   ,即用(X2)取代X。即应满足:

(X21)÷5 = (2363M 1)÷5=K,→ (63M22)÷5 = K。才顾及了三个方程。

解此元不定方程 M=1 K17。把M代入X2

于是  X2=2363M=2363×1=86,就把X286作为第三个方程的最小解,转为X3

X386。再加上635的最小公倍数63×5=315的倍数,得通解

X386315P(P=123 )

验算  86÷7 =12   2

       86÷9 = 9   5

86÷5=17   1

     *

“逐级满足法”解法有规律了,容易操作了。但也有两点麻烦

1组成形如 (AX±B)÷CK的不定方程,要一个个顺序进行,虽有规律,但还是比较麻烦。

2、解算(AX±B)÷CK方程,求待定量XK,无论用手算,或是电子表格算,要解(N1)次。也很烦人,特别是大数相除更麻烦。

为了加快计算,我编了一个VB程序,不用烦心,输入完数据,↙,就出结果了。

上述算题:

输入方程个数N = 3  

输入各方程的除数与余数      

结果为:

通解 X =86 315 N ( N=123 )

 

还有一例:我曾靠电子表格算了一天,才得结果的,现在包括输入在内,仅15秒就搞定。

输入方程个数N = 6  

输入各方程的除数与余数  11  13 

结果为:

通解 X =20183 60060N ( N=123 )

 

中国剩余定理即孙子定理 “逐级满足法”VB程序

 

Private Sub Form_Click()                                          

Form1.Width = 11520                      视窗宽

Form1.Height = 15360                     视窗高

Dim W(20)                              W 放除数() 795,又用单变量C表示

Dim R(20)                               R放余数如2 5 1

Dim G(20)                              G 放各级最小公倍数、又用单变量A表示

Dim F(20)                      F放上下余数之差,F(I) = Y(I1)R(I)、又用单变量B表示

Dim Y(20)                              Y放各级最小解,如22386

                                       

N = InputBox ("输入方程个数 N =")

For I = 1 To N

    W(I) = InputBox ("输入模W(I)=")

R(I) = InputBox ("输入余R(I)=")

 Next I

S=1

For I = 1 To N

   S = S* W(I)                         计算各级最小公倍数

G(I)=S

Next I

 

F(1) = R(1)                            安置第一个方程的最小解

Y(1) = R(1)

 

For I = 2  To                       计算各级ABC

  A=G(I1)                        组成 (AXB)÷C= K不定方程

 F(I) = Y(I1)R(I)

B=F(I)

C= W(I)

Print Spc(4); " ABC=  "; A;B;C

 

For X = 1 To 1000000

 M = (A * X + B)                      (AXB)÷C= K  X

   P = M  Mod C                           

If P = 0 Then GoTo SS                       P=0 表示得到整数解了,便跳出循环

Next X

SS:

Print Spc(4); " X ="; X   

 

Y(I)= Y(I1)+X* G(I1)                    算得各级方程的最小解。如2386

Print Spc(4); " 最小"; Y(I)                        

Print Spc(4); " 公倍 ="; G(I)     

Next I

Print Spc(4); " 通解 X = "; Y(N); " "; G(N); " N ( N=123 )"

Print Spc(4); " "

Print

End Sub

 

   化为相同除数

 

X (mod  7 )

X (mod  9 )

X (mod  5 )

这三个同余式,除数不同,分别为795,为了能利用同余式的和差特性,简化计算,先设法使它们的除数相同,为此:

X (mod  7 )两边都乘9*5,得X*452*45  (mod 7*45 )  45 X90   (mod 315 ) (1)

X (mod  9 ) 两边都乘7*5,得X*355*35  (mod 9*35 )  35 X175  (mod 315 ) (2)

X (mod  5 ) 两边都乘7*9,得X*631*63  (mod 9*63 )  63 X 63  (mod 315 ) (3)

                           (1)(2)(3) (4)     143 X328   (mod 315 ) 4)  

根据同余式的加减性质,(1)(2)(3)得:

143 X328   (mod 315 )  143 X13  (mod 315 ),化为带余除式为:

143 X÷315=K 13  亦即   143X13=315 K ,有(143X13)÷315K(整数)

(143X13)÷315K(整数)用通式表示为  (AXB)÷SK

  解得  X=86K=38  (实际上不用它,在此仅确认它是整数就行了)

通解为    X86+315 N  ( N  123 )

   X86  (mod 315 )

 

这一种算法,在所有五种算法中,我认为是最简洁、工作量最小的算法。因为不管方程有多少个,它解算形如(AXB)÷S=K这种不定方程,仅解一次而已。而其他方法要解多次。同时,这种算法也容易理解,算法单纯。

我编了一个程序。这个程序,非但可以解算互质的同余方程组,还可以解算非互质的同余方程组。如果方程组不合解题条件,会显示“无解”。操作方法是:

输入方程个数N=3

再按方程顺序,输入每个方程的除数与余数 1

就得结果:  通解 X = 86315 N  ( N=123 )

K38

成功

 

广义同余方程组的“除数相同法”Visual Basic 程序。

 

Private Sub Form_Click(): Form1.Width = 11520: Form1.Height = 15360

Dim W(20) : Dim R(20) :  Dim Y(20) : Dim F(20) : Dim V(20)

N = InputBox("输入方程个数 N =")                                     

For I = 1 To N : W(I) = InputBox("输入模W(I)=") : R(I) = InputBox("输入余R(I)=") :  Next I

For I = 1 To N: Print Spc(4); "  x÷ "; W(I); " "; R(I) :   Next I

Print

For I = 1 To N : V(I) = W(I) :  Next I

For I = 1 To N - 1

   n1 = V(1)

   m1 = V(2)

If m1 > n1 Then

M = m1: G = n1

Else

M = n1: G = m1

End If

Do

E = M Mod G

If E = 0 Then Exit Do

M = G

G = E

Loop

S = m1 * n1 / G

 V(1) = S

 V(2) = V(I + 2)

Next I

 

Print

A = 0 :

For I = 1 To N : Y(I) = S / W(I) : A = A + Y(I) : Next I

B = 0

For I = 1 To N : F(I) = R(I) * Y(I) : B = B + F(I) : Next I

Print Spc(4); " 同余式 "; A; "  X "; B; " ( MOD"; S; " ) "

Print

 

SP = 1

For I = 1 To N : SP = SP * W(I) :  Next I

 

If (S = SP) Then GoTo S1

If (S <> SP) Then Print Spc(4); " 注意 非互质 ": Print: GoTo PP

Print

 

S1:

 

For k = 1 To 10000000

  M = (S * k + B)

  X = M / A

If (X - Int(X)) = 0 Then GoTo S2

Next k

S2:

If k = 10000001 Then Print Spc(4); " 无解 ": GoTo ZZ

 

Print Spc(4); " k = "; k; " 通解 X = "; X; " "; S; " N ": GoTo ZZ

Print

PP:

For k = 1 To 10000

  M = (S * k + B)

  X = M / A

If (X - Int(X)) <> 0 Then GoTo H1

For J = 1 To N

C = (X - R(J)) / W(J)

If (C - Int(C)) <> 0 Then GoTo H1

Next J

Print Spc(4); " k = "; k; " 通解 X = "; X; " "; S; " N ": GoTo ZZ

H1:

Next k

Print Spc(4); "无解 "

ZZ:

Print

Print Spc(4); " "

End Sub

 

  操作方法及示例

例一  2组数据33 22 39 31  

程序运行后,显示 输入方程个数 N = ” 输入模W(I)=”输入余R(I)” 等,即顺次输入: 2 33  22  39  31

电脑运算后显示:

÷3322

÷3931

同余式  24 X ≡ 627  (MOD  429)

注意 非互质

K = 9    通解X=   187 + 429 n 

 

例二  输入  452731393117 

电脑运算后显示:

X÷ 5  2

X÷ 7  3

X÷13  9

X÷3117

同余式  6376 X ≡ 29187  (MOD  429)

k=1477    通解X≡3272+14105N 

分析:上面4个同余式是互质的,所以没有显示 注意 非互质 ,直接算得结果。

 

例三  输入 2722116 

电脑运算后显示:

X÷  7  2

X÷ 21 16

同余式  4 X ≡ 22  (MOD 21)

注意 非互质

K =2    通解X=   16+21N 

 

分析2个同余式,不互质。又因721有公约7,余数差16-2=14714,所以有解。

 

例四 输入  31110523527

电脑运算后显示:

X÷ 11  10

X÷ 5  2

X÷35  27

同余式  123 X ≡ 801  (MOD 385)

注意 非互质

K = 96    通解X=307+385N

 

分析:后两个同余式不互质但有解。又与第一个同余式互质,应有解。

 

例五  输入  2722115

电脑运算后显示:

X÷  7   2

X÷ 21  15

同余式  4 X ≡ 21  ( MOD 21)

注意 非互质

无解

 

 

五    典经的、“大衍求一术”解法

 

XR1  (mod  m1 )     X (mod  7 )

XR2  (mod  m2)      X (mod  9 )

XR3  (mod  m3)      X (mod  5 )

名词注释及计算步骤:

余数R:、R1=2R2=5R3=1

模,亦即除数m:例中m1=7m2=9m3=5

模的最小公倍数GG=m1*m2*m3,例中M=7*9*5=315

衍数(局部公倍数)yY1=m2m3Y2=m1m3Y3=m1m2,例中Y1=9*5=45Y2=7*5=35Y3=7*9=63

乘率C:这是解算中国剩余定理的关键,而计算“乘率”的方法,是秦九韶在《数书九章》一书中首次提出的,称之为“大衍求一术”。“求一”就是使(衍数*乘率)除以模(除数),而余数为1。即:

衍数Y*乘率C (mod  m),乘率C可以经过反算而得到。例中Y1C1 (mod  7 )

 Y2C2 (mod  9 ) Y3C3 (mod  5 )

 

计算C1方法。由Y1C1 (mod  7 ) 45C1 (mod  7 )  (45C11)  7=整数N ,得C1=5。因为45*5=2252251=224224÷7=3232是整数,合符要求。C2C3之计算也相仿。乘率C之计算见下表:

 

同余式 i

 衍数Y

乘率C

1

m

  检验  (Y*C-1)/m  = 整数

   1

  45

  5

 1

 7

(45*C-1)/7 =N   (45*5-1)/7 =  32

   2

  35

  8

 1

 9

(35*C-1)/9 =N  (35*8-1)/9 =  31

   3

  63

  2

 1

 5

(63*C-1)/5 =N  (63*2-1)/5 =  25





最终结果,XR1Y1C 1+R2Y2C2+R3Y3C3  (mod G)

X≡Σ余数*衍数*乘率 (mod G),见下表计算:

 

i

余数R

衍数Y

乘率C

R*Y*C

1

2

45

5

 450

2

5

35

8

1400

3

1

63

2

 126

 

 

 

Σ

1976

 

 

 

 

 

 

 

 

 

X1976  (mod 315)

1976 除去3156倍后,剩下86,最终,X86  (mod 315)

“大衍求一术”的关键与难点,是如何解“衍数Y*乘率C (mod  m),得乘率C。也就是解算方程(Y*C-1)/m =N 。如第三节所述,可以手算,也可以试算凑数,但都很烦琐。在现代计算中,就可以编个电脑程序来计算了。 

 

2015-11-21补充:

XR1  (mod  m1 ) X (mod  7 )  ×5×9    45 X90  (mod  315 )

XR2  (mod  m2)    X (mod  9 )  ×7×5    35 X175  (mod  315)

XR3  (mod  m3)    X (mod  5 )  ×7×9    63 X63  (mod  315 )

 

   45 C1 (mod  7 )     (45 C1 1 ) ÷7 =整数 C1 5

   35 C2 (mod  9)      (35 C2 1 ) ÷9 =整数 C2 8

   63 C3 (mod  5 )     (63 C3 1 ) ÷5 =整数 C3 2

 

我在201310月发表的博文《中国剩余定理即孙子定理的五种解法》,距今两年,阅读者6900多位。感到很欣慰。

今天编了一个解算中国剩余定理的Visual Basic程序,供朋友们共享。解算太快了,真过瘾。例子仍用原博文的:

A2  (mod  7 )

A (mod  9 )

A (mod  5 )    A

 

操作。

输入方程个数 N = 3

输入模(除数 B)与输入余数。顺方程输:7     9     5  

马上显示 A86 315K  (K= 012 )     A 86  (mod 315)

 

又陈景润 著《初等数论Ⅰ》“韩信点兵” 一例:有兵一队,若列成5行纵队,则末行1人。成6行纵队,则末行5人,成7行纵队,则末行4人,成11行纵队,则末行10人。求兵数。

    设:A是兵数,依题意有:

A1  (mod  5)   A5  (mod  6)   A4  (mod  7)   A10 (mod  11)

 操作。

输入方程个数 N = 4

输入模(除数 B)与输入余数。顺方程输:5     6     7     1110  

马上显示 A21112310 K (K= 012   A2111  ( mod  2310 )

 

中国剩余定理“大衍求一术” Visual Basic程序

 

Private Sub Form_Click()                                             

Form1.Width = 11520                                       视窗宽

Form1.Height = 15360                                      视窗高

N = InputBox("输入方程个数 N =")                          输入方程个数 N

Dim B (20)                                                数组声明及容量

Dim R (20)

Dim Y (20)

Dim C (20)

 For I = 1 To N

   B(I) = InputBox("输入模B(I)=")                         输入模 除数 ) B

R(I) = InputBox("输入余R(I)=")                            输入余数R

 Next I

 M = 1

For I = 1 To N

   M = M * B(I)                                            最小公倍数M

 Next I

 For I = 1 To N

   Y(I) = M / B(I)                                         局部公倍数、衍数Y

Next I

 For I = 1 To N

   For J = 1 To 1000

  Z = (Y(I) * J - 1) / B(I)

If (Z - Int(Z)) = 0 Then C(I) = J: GoTo SS                           乘率C

Next J

SS:

Next I

 A = 0

For I = 1 To N

   A = A + R(I) * Y(I) * C(I)                                 R×Y×C 总和Σ(R×Y×C)

Next I

 For I = 1 To 1000

   A = A                                                     最小值0

If A < M Then GoTo PP

Next I

PP:

 Print Spc(4); "A = "; A; "+ "; M; "K  (K=0      ) "     通解A= A 0MN

   Print Spc(4); "成功                                         提示结束

End Sub

 

      因为中国剩余定理的大衍求一术只适合模(除数)是两两互质的,所以这个程序也只适合模(除数)是两两互质的。如果不两两互质,则要转换成两两互质,那就很麻烦了。我一时还想不出如何编一个转换成两两互质的程序,只能到此为止。

去吧,与爱好算术的网友们共享去吧。

 

 

   

 

1           综合上述五种解法,归根到底,关键点,也是难点,就是都要解“(AXB)÷C= K”这种类型不定方程。而解这种不定方程的方法,既没有公式又没有窍门,归根到底还是一个“凑”字了。其中“枚举法”是小学生都懂的凑数法。因此可以说,中国剩余定理其实并不神秘,就是一个如何凑数的问题。

 2      五种解法中我认为“化为相同除数法”最简易、工作量最小。因为:

第一,它要使除数相同,方法最简单、统一,初中二年级学生都会。

第二,它解算不定方程(AXB)÷C= K 只解一次,也即只“凑”一次。而“逐级满足法”和“大衍求一术”,则要“凑”多次 (N次,即方程的个数)。方程个数越多,“化为相同除数法”就越显得省力。我认为应该宣传、普及一下通俗易懂的“化为相同除数”。               

3  至于说到“大衍求一术”的同余式“衍数Y*乘率C (mod  m)”是怎样来的,又为什么成为解题的关键,在陈景润所著《初等数论Ⅰ》1978年版85页上有理论推证。这应该是一个现代数学的推证,而不是在论证秦九韶的理论就是这样的。也就是说,这是殊途同归。至于秦九韶到底是怎样想的,或许他有更容易为常人所理解的机理,那就不得而知了,于是我们钦佩古代数学家的智慧。我们钦佩古代数学家的智慧,但不一定非要走他的路,固守他的方法。有了更好的方法,应该学习推广。至于以后是不是有更好的解法,那谁又知道呢。

 

  写后感

 

2013年的国庆过得很忙,甚至还起了一个早床来计算。感谢我的老伴,以她的勤劳与宽容,给了我闲暇与自由,使我能够静心地做做算术、写写文章,自得其乐,有时间消磨我的时光。

201511月,我在作《数论—余数习题集》时,对“逐级满足法”作了改进。对“大衍求一术”作了认真学习,进而对“化为相同除数法”作了规范化计算,还编了相应的三个Visual Basic 程序。我高兴的把我的“发现”与神速的计算告诉我老伴。老伴点赞说,脑筋还没有老化呢。我报以-个开心的微笑,间接的感谢她为我洗衣做饭,使我安心计算、写作。

我仰望深邃的数学天空,深感自己的渺小。我浅尝一滴数学的清泉,来润湿一下我干枯的灵感。

 

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有