中国剩余定理

CRT

\(f(x)=\left\{ {\begin{array}{}x\equiv a_1(mod\ m_1)\\x\equiv a_2(mod\ m_2)\\\cdots\\x\equiv a_n (mod\ m_n)\end{array}} \right.\)

任意两个\(m_i\)互质,求\(x\)

\(rem=\prod_1^nm_i\),得\(gcd(m_i,\frac{rem}{m_i})=1\)

\(k\)\(k\)满足:

\(k\times \frac{rem}{m_i} \%m_i=1\)

得:

\(k\times \frac{rem}{m_i} \% m_j = \left\{ {\begin{array}{}1(i=j)\\0(i\ne j)\end{array}} \right.\)

那么得:

\(a_i\times k\times \frac{rem}{m_i} \% m_j = \left\{ {\begin{array}{}a_i(i=j)\\0(i\ne j)\end{array}} \right.\)

\(k\)\(\frac{rem}{m_i}\)逆元。

答案:\(x=\sum _1^n a_i \times k \times \frac{rem}{m_i}\)

exCRT

我们现在,去除掉\(m_i\)互质的条件。

在这种情况下,是有可能无解的。

我们选取第\(1,2\)\(x\equiv a_i(mod\ m_i)\)

\(x=a_i+m_i\times k_i\)

有:\(a_1+m_1 \times k_1=a_2+m_2\times k_2=\cdots=x\)

\(m_1\times k_1-m_2\times k_2=a_2-a_1\)

两边同除以\(gcd(m_1,m_2)\)

得:

\(\frac{m_1\times k_1}{gcd(m_1,m_2)}-\frac{m_2\times k_2}{gcd(m_1,m_2)}=\frac{a_2-a_1}{gcd(m_1,m_2)}\)

我们现在简写\(gcd(m_1,m_2)\)\(gcd\)

易得,因为等式左边是整数,若右边无法整除,则无解。

那么现在等式为:

\(\frac{m_1}{gcd}\times k1-\frac{m_2}{gcd}\times k2=\frac{a_2-a_1}{gcd}\)

可以知道\(\frac{m_1}{gcd}\)\(\frac{m_2}{gcd}\)互质。

则现在设\(q\)\(p\)。根据裴蜀定理。

有:\(\frac{m_1}{gcd}\times p+\frac{m_1}{gcd}\times q = 1\)

\(p\)\(q\)通过扩展欧几里得(\(exgcd\))求出。

\(k_1=p\times \frac{a_2-a_1}{gcd},k_2=q\times \frac{a_2-a_1}{gcd}\)

那么我们现在得到了一二组的解,我们将一二组合并为一组:新的一组的

\(a=k_1\times m_1+a_1\)

\(m=lcm(m_1,m_2)\)

\(a\)就是\(1,2\)组的答案,并且这个最小的非负数答案一定不会超过\(m\)

以此类推。

最后\(x\)的答案就是合并所有组后的\(a\)

posted @ 2019-10-27 10:51  redegg  阅读(314)  评论(0编辑  收藏  举报