中國剩餘定理

2022-05-21 11:36:10 字數 1096 閱讀 3653

​ crt是用來解決線性同餘方程組的求解的演算法。它的前提是所有的模數互質就好。同時也是唯一乙個以中國開頭的演算法(作為中國人要好好學呀)。

​ 首先從老祖宗的角度出發,他們當時解決的是這樣乙個問題。(為什麼老祖宗這麼強orz)

​ 這個問題的解答為該詩的最後一句,自己悟吧!不過我們先解決乙個較為抽象的小問題。求

\[x\equiv r_1(mod\;m_1)\\

x\equiv r_2(mod\;m_2)\\

x\equiv r_3(mod\;m_3)\\

\]的解。

​ 先記\(a_1,a_2,a_3\)為這三個方程各自的乙個解使得\(x=a_1+a_2+a_3\)可以解出正解。對於這樣的加法我們分類討論。

由以上三點可知,每乙個數必須保證是其他模數的倍數,由於所有的模數都互質所以說直接乘起來除掉這個數對應的模數就好,即令

\[m=m_1*m_2...*m_n\\

q_i=\frac

\]之後怎麼操作我們先放在一邊。現在來考慮怎麼求出每個單獨的\(a_i\),我們會直接去求方程\(a_i\equiv r_i \pmod\)的解嗎?老祖宗告訴我,不是的。那個東西不好求。老祖宗們考慮求出這個

\[b_i\equiv 1(mod \;m_i)\\

b_i*r_i\equiv r_i(mod\;m_i)\\

q_i\equiv1(mod\;m_i)\\

b_i*r_i*q_i\equiv r_i(mod\;m_i)\\

\therefore a_i=b_i*r_i*q_i

\]順帶一提,由於\(b_i*q_i\equiv1(mod\;m_i)\),所以\(b_i\)是\(q_i\)在\(mod\;m_i\)意義下的逆元。

到了現在,我們已經找到了求出x的方法,即\(x=\sum a_i=\sum inv(q_i)*r_i*q_i\),此處的inv是逆元的意義,但是此時求出來的x不一定是最小的解,所以說我們一邊加還要一邊對於m求餘。

ll crt(ll r,ll pi)
好記吧!

​ 不互質是不一定有解的,要用到擴充套件crt,也稱為合併線性同餘方程組(利用擴充套件歐幾里得演算法)。詳情請移步我的另一篇文章

中國剩餘定理 擴充套件中國剩餘定理

中國剩餘定理 對於求解一元不定方程組 的一種演算法叫做中國剩餘定理。又名孫子定理。其中m1,m2,m3.mk 為兩兩互質的整數,求x的最小非負整數解 令m mi 1 i n m是所有mi的最小公倍數 ti為同餘方程 ti m mi 1 mod mi 的最小非負整數解 則有乙個解 x ai m mi ...

中國剩餘定理

用來求解模數互質的同餘方程組,即求乙個數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...

中國剩餘定理

中國剩餘定理介紹 在 孫子算經 中有這樣乙個問題 今有物不知其數,三三數之剩二 除以3餘2 五五數之剩三 除以5餘3 七七數之剩二 除以7餘2 問物幾何?這個問題稱為 孫子問題 該問題的一般解法國際上稱為 中國剩餘定理 具體解法分三步 找出三個數 從3和5的公倍數中找出被7除餘1的最小數15,從3和...