中國剩餘定理可以描述為:
若某數x
分別被d1、、…
、dn除得的餘數為r1、
r2、…、
rn,則可表示為下式:
x=r1r1+r2r2+…+rnrn+rd
其中r1是d2
、d3、…
、dn的公倍數,而且被
d1除,餘數為
1;(稱為
r1相對於
d1的數論倒數)
r1 、
r2 、
… 、 rn
是d1、d2
、…、dn-1
的公倍數,而且被
dn除,餘數為1;
d是d1、
d2、…、的最小公倍數;
r是任意整數(代表倍數),可根據實際需要決定;且d1
、、…、必須互質,以保證每個
ri(i=1,2,…
,n)都能求得.
(注:因為r1對
d1求余為
1,所以
r1r1對d1
求余為r1
,這就是為什麼是r1對
d1求余為
1的目的,其次,
r2r2,r3r3…rnrn對d1
求餘都是0)
如要討論中國利餘定理,同餘(
congruence
)的概念可算是必須。
給定乙個正整數n,我們說兩個數a、b是對模n同餘,如果a-b是n的倍數。用符號a≡b(mod n)來代表。一般來說,a≡b(mod n)等同於a=b+kn,而a,b,k,n都是整數,所以,13≡1(mod 6)、19≡1(mod 6)。
但同餘並不只是乙個代號,而是有很方便和有趣的特性。(一)整數加法跟普通加法相似,a+c≡(b+c)(mod n);(二)整數乘法跟普通乘法相似,ac≡bc(mod n),而a,b,c,n都是整數。但如果ac≡bc(mod n),則不一定a≡b(mod n)。
以「鬼谷算」為例,假設x是那個未知數,而除3,5,7後的餘數分別為r1,r2,r3。因此有
x≡r1(mod 3)
x≡r2(mod 5)
x≡r3(mod 7)
而另一方面
70=(5x7)x2≡1(mod 3)、70≡0(mod 5)及70≡0(mod 7)
21=(3x7)x1≡1(mod 5)、21≡0(mod 3)及21≡0(mod 7)
15=(3x5)x1≡1(mod 7)、15≡0(mod 3)及15≡0(mod 5)
由同餘的特性,我們有
70r1
≡r1(mod3)、
70r1
≡0(mod5)及
70r1
≡0(mod
7) 21r2
≡0(mod3)、
21r2
≡r2(mod5)及
21r2
≡0(mod
7) 15r3
≡0(mod3)、
15r3
≡0(mod5)及
15r3
≡r3(mod
7) 因此亦有
70r1+21r2+15r3≡r1(mod 3)
70r1+21r2+15r3≡r2(mod 5)
70r1+21r2+15r3≡r3(mod 7)
所以x≡70r1+21r2+15r3+3m
x≡70r1+21r2+15r3+5n
x≡70r1+21r2+15r3+7p
最後得到這個精彩的結果,x≡(70r1+21r2+15r3)(mod 105),而105正便是3,5,7的最小公偣數。所以其實在很多數字可以滿足這幾個餘數條件的,要找到最小值才要減105。
對於中國剩餘定理有個簡單理解並記憶的方法:
中國剩餘定理的思想在於先找到乙個滿足條件的數,不管是不是最小的,如果不是最小的就不斷減公倍數,中國剩餘定理的巧妙在於把滿足條件的數分成三個部分相加,例如:
假設滿足條件的數為:m=3*5*a+5*7*b+3*7*c
先讓它滿足條件1:除以3餘1,我們看m的第一部分和第三部分能被3整除,只要第二部分除以3餘1就行了,選擇b=2就滿足
再滿足條件2:除以5餘2,考慮第三部分就行了,選擇c=2就滿足
最後滿足條件3:除以7餘3,考慮第一部分就行了,選擇a=3
這樣m=3*5*3+5*7*2+3*7*2=157,比公倍數大,減去公倍數,157-105=52是滿足條件最小數
以我個人理解寫成下面這個形式(以3個數為例)
x被a,b,c處分別餘r1,r2,r3。表示為:
x%a = r1 x%b = r2 x%c = r3
bc*k1 % a = 1 ac*k3 % b = 1 ab*k3 % c = 1
所以x = bc * k1 * r1 + ac * k2 * r2 + ab * k3 * r3
下面以乙個例子來把中國剩餘定理用於實踐
poj1006:
解析報告:點這裡
中國剩餘定理詳解
中國剩餘定理 孫子算經裡有這樣乙個問題 今有物不知其數,三三數之剩二,五五數之剩三,七七數之剩二,問物幾何?翻譯成現在的數學問題就是 x 3 2 x 5 3 x 7 2,求x 的值 遇到這這樣乙個問題很多c 語言初學者不禁會想到用暴力可以算出來,還要這樣乙個定理幹嘛?如果資料相當大呢?計算機就會計算...
中國剩餘定理(詳解)
中國剩餘定理可以描述為 若某數x 分別被d1 dn除得的餘數為r1 r2 rn,則可表示為下式 x r1r1 r2r2 rnrn rd 其中r1是d2 d3 dn的公倍數,而且被 d1除,餘數為 1 稱為 r1相對於 d1的數論倒數 r1 r2 rn 是d1 d2 dn 1 的公倍數,而且被 dn除...
中國剩餘定理詳解
中國剩餘定理又叫孫子定理 孫子算經中有問題 今有物不知其數,三三數之剩二,五五數之剩三,七七數之剩二。問物幾何?首先我們容易知道如果x是這個其中的乙個解,那麼x 140 k也是這裡面的解,140是這三個模的最小公倍數,k是整數 運用這個我們可以把三個式子給合併成兩個式子,進而把解表示成k1 2 k2...