初等数论四大定理--中国剩余定理

中国剩余定理(CRT)
内容:给定如下面形式的一元线性同余方程组

[egin{equation} egin{cases} x &equiv a_1(mod m_1) \ x &equiv a_2(mod m_2) \ x &equiv a_3(mod m_3) \ &vdots quad quad quad otag \ x &equiv a_k(mod m_k) end{cases} end{equation} ]

中国剩余定理就是用来求解这种方程组的
(m_i)两两互质,则对任意整数:(a_i),方程组都有解

M=$ prod_{i=1}^k m_i$ (qquad) (M_i)=(frac{ extbf{M}}{m_i} quad M_i t_i equiv 1(mod m_i))
所以,M为所有方程模的乘积,(M_i)为除了第i个方程外所有方程模的乘积,(t_i为M_i)的逆元。
通过构造法,我们可以得出解

[x=a_1 t_1 M_1+a_2 t_2 M_2+cdots+a_k t_k M_k+kM=kM+sum_{i=1}^k a_i t_i M_i,k in Z$ ]

如果是在模M的意义下,就只有一个解(x=(sum_{i=1}^k a_i t_i M_i) mod M)

证明
因为(m_i)两两互质,所以(m_i perp M_i)
所以可以证明存在(t_i)
所以

[a_i t_i M_i equiv a_i cdot 1 equiv a_i (mod m_i) ]

[a_i t_i M_i equiv a_i cdot 1 equiv 0 (mod m_j) , 1 le j le k,j e i ]

所以 $$x= a_i t_i M_i + sum^{}_{j e i }a_j t_j M_j equiv a_i (mod m_i)$$
所以x是方程组的一个解。
另外,假设(x_1,x_2)都是方程组的解,那么

[x_1-x_2equiv 0 (mod m_i) ,1 le i le k ]

又因为(m_i)两两互质,所以M整除(x_1-x_2),所以该方程组的任意两个解之间必然相差M的整数倍。
证毕

扩展中国剩余定理(EXCRT)
(m_i)不满足两两互质,则上述算法不成立。因为(m_i)不两两互质,则(m_i)不一定会与(M_i)互质,从而不一定有逆元,不能满足上述证明。这时候我们要换个思路:能不能把两个同余方程合并,得到解?

[ egin{equation} egin{cases} x equiv a_1 ( mod m_1) \ x equiv a_2 (mod m_2)\ end {cases} end {equation} ]

可以改写成

[ egin{equation} egin{cases} x = a_1+k_1m_1 \ x =a_2+k_2m_2 \ end {cases} end {equation} ]

[所以 \ a_1+k_1m_1=a_2+k_2m_2 \ m_1k_1-m_2k_2=a_2-a_1 \ ]

这就是我们常见的二元一次不定方程了,可以用扩展欧几里得求得一组解(K1,K2)

[显然当且仅当gcd(m_1,m_2) ackslash a_2-a_1有解 ]

(K1,K2)同乘(frac{a_2-a_1}{gcd(m_1,m_2)})即可得到一组解((k_1,k_2))
这样可以求出一个x,但是x的通解怎么求呢。
不妨设(x_0,x_1)为两个解((x_0<x_1))
因为两个解都满足上面两个同余方程,故存在两个(r_1,r_2)使得(x_1=x_0+r_1 imes m_1,x_1 = x_0+r_2 imes m_2)
(x_1-x_0=Delta)
显然有$r_1 imes m_1 = r_2 imes m_2 $
(d=gcd(m_1,m_2),m_1^{prime}=frac{m_1}{d},m_2^{prime}=frac{m_2}{d})

所以有(r_1 imes m_1^{prime}=r_2 imes m_2^{prime})

所以有(m_1^{prime} ackslash r_2 imes m_2^{prime})
因为(gcd(m_1^{prime},m_2^{prime})=1)
所以(m_1^{prime} ackslash r_2),所以(m_1^{prime}m_2^{prime} ackslash r_2m_2^{prime})
所以 (m_1^{prime}m_2^{prime}d ackslash r_2 imes m_2^{prime}d)
所以(m_1^{prime}m_2^{prime}d ackslash Delta)
(m_1^{prime}m_2^{prime}d =frac{m_1^{prime}m_2^{prime}d^2}{d}=frac{m_1 m_2}{d}=lcm(m_1,m_2))
(lcm(m_1,m_2) ackslash Delta)
所以任意两个解之间差都是模数的lcm倍
所以x的通解为(x_0+k*lcm(m_1,m_2),k in Z)

本文来自博客园,作者:{2519},转载请注明原文链接:https://www.cnblogs.com/QQ2519/p/15042132.html

原文地址:https://www.cnblogs.com/QQ2519/p/15042132.html