用來求解模數互質的同餘方程組,
即求乙個數x,使得x除以n個模數分別為a1,a2,a3……an(注意這裡的除數必須要兩兩互質)得到n個餘數r1,r2,r3……rk。求這個數x.中國剩餘定理求的就是這個數x。
求解過程:
1)令p=a1*s2*a3*……*an,ki=p/ai (i從1到n)。
2)我們要找到這樣的數 di%ki==0且di%ai==ri (i從1到n)(這裡可以用到我上篇講到的擴充套件歐幾里德演算法來求得di),若這樣的di不存在,則找不到這樣的x,該題無解。
3)當求出d1,d2,d3……dn後,相加得到w,w為其中乙個解,且通解x=w+t*p (t為任意自然數)
求解完畢。
證明:這裡證明第3點。在(2)裡,有di%ki=0,所有,di是可以整除ai外的所有除數,而且di%ai=ri
所以我們很容易得知, (d1+d2+d3+……+dn)%ai
=d1%ai+d2%ai+d3%ai+……+dn%ai
=di%ai
=ri 證畢。
這裡的模數要求一定要兩兩互質,否則按這種方法做出的程式會出現各種問題。
例如,當模數為4和6,餘數為1和3時,顯然我們得知答案是9,但用上述方法是求不出答案的。
如果按照上述做法,無論6的多少倍模4都不可能模出1來。
而兩個數互質的話就能保證其中乙個數的倍數模另乙個數能模出所有的值
假設a和b互質,則只需證明(t*a)%b=1(t為任意自然數)即可
然後只需使t擴充套件n倍,則餘數也會相應擴充套件n倍。
那麼如何證明呢?
上式可變形為t*a=k*b+1。
中國剩餘定理 擴充套件中國剩餘定理
中國剩餘定理 對於求解一元不定方程組 的一種演算法叫做中國剩餘定理。又名孫子定理。其中m1,m2,m3.mk 為兩兩互質的整數,求x的最小非負整數解 令m mi 1 i n m是所有mi的最小公倍數 ti為同餘方程 ti m mi 1 mod mi 的最小非負整數解 則有乙個解 x ai m mi ...
中國剩餘定理
中國剩餘定理介紹 在 孫子算經 中有這樣乙個問題 今有物不知其數,三三數之剩二 除以3餘2 五五數之剩三 除以5餘3 七七數之剩二 除以7餘2 問物幾何?這個問題稱為 孫子問題 該問題的一般解法國際上稱為 中國剩餘定理 具體解法分三步 找出三個數 從3和5的公倍數中找出被7除餘1的最小數15,從3和...
中國剩餘定理
前面許多人講過一些性質與證明,我來講一講解法,也是為了以後自己回過頭來看。中國剩餘定理介紹 在 孫子算經 中有這樣乙個問題 今有物不知其數,三三數之剩二 除以3餘2 五五數之剩三 除以5餘3 七七數之剩二 除以7餘2 問物幾何?這個問題稱為 孫子問題 該問題的一般解法國際上稱為 中國剩餘定理 具體解...