1. 程式人生 > >寫一下中國剩余定理的證明

寫一下中國剩余定理的證明

tro 同余 還得 簡單 mmm pan ... 什麽 珠聯璧合

中國剩余定理

簡單記錄一下推倒過程吧。

搞這種方程的。

\(x\%m_1=c_1,x\%m_2=c_2,x\%m_3=c_3..........\)

EXCRT

先來表演,將兩個方程合並:
\(x\%m_1=c_1\), \(x\%m_2=c_2\)

Duang!Duang!

\(x=k_1m_1+c_1=k_2m_2+c_2\)

\(k_1m_1-k_2m_2=c_2-c_1\)

\(g=gcd(m_1,m_2)\),有\(k_1\frac{m_1}{g}-k_2\frac{m_2}{g} = \frac{c_2-c_1}{g}\)

在模\(\frac{m_2}{g}\)系下:\(\frac{m_1}{g}k_1= \frac{c_2-c_1}{g}\)

解得\(k_1=\frac{c_2-c_1}{g}*inv(\frac{m_1}{g},\frac{m_2}{g}) + k\frac{m_2}{g}\)

\(x=[\frac{c_2-c_1}{g}*inv(\frac{m_1}{g},\frac{m_2}{g}) m_1+c_1]+k\frac{m_1m_2}{g}\)

好了,兩個同余方程就這麽合並了。然後我們對於那\(n\)個方程合並\(n-1\)次,就是EXCRT了

emmm. 同余方程的合並和生成樹這種東西,是不是可以珠聯璧合。然後搞出什麽有趣的東西啊。

CRT

這個一點也不好用,還得保證\(m_1,m_2...\)兩兩互質。

有種暴力構造的感覺。

直接給答案啦\(x=\sum c_i\frac{M}{m_i}inv(\frac{M}{m_i},m_i)\)

因為在模\(m_i\)系下\(\frac{M}{m_i}inv(\frac{M}{m_i},m_i)=1\)

所以當且僅當\(i=x\)時,\(c_i\frac{M}{m_i}inv(\frac{M}{m_i},m_i)\%m_x=c_x\),否則\(c_i\frac{M}{m_i}inv(\frac{M}{m_i},m_i)\%m_x=0\)

問:為什麽要求兩兩互質啊?

答:不互質,求個錘子逆元吖!

寫一下中國剩余定理的證明