1. 程式人生 > >學習筆記——中國剩餘定理(CRT)

學習筆記——中國剩餘定理(CRT)

CRT在演算法競賽中算是一個比較重要的模組,他的基本形式如下:
給出n個式子:

xa1modp1
xa2modp2
xa3modp3

xanmodpn
求x的最小正整數解。(pi互質)
那麼如何求解x呢?
我們先考慮求解x的一個可行解x0
因為同餘的可加性,我們可以把x0拆成x0=x1+x2+x3++xn,每個xi對應的式子為:
xiaimodpi
對於不等於i的值j
xi0modpj
再由於同餘的可乘性,我們可以把x拆成
x=a1x1+a2x2++anxn
,把式子改為:
xi1modpi
然後我們觀察每個xi:對於每個xi和不等於i的所有j,由於
xi0modpj
設所有p的乘積為P,那麼xi一定是Ppi的倍數,那麼我們可以把xi改為 g(Ppi)1modpi,通過這個式子可以看出g其實是Ppi在模pi意義下的逆元,xi就可以求出來,x0也就求出來了,x0的公式為: