中国剩余定理(CRT)
内容:给定如下面形式的一元线性同余方程组
中国剩余定理就是用来求解这种方程组的
若(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)的逆元。
通过构造法,我们可以得出解
如果是在模M的意义下,就只有一个解(x=(sum_{i=1}^k a_i t_i M_i) mod M)
证明:
因为(m_i)两两互质,所以(m_i perp M_i)
所以可以证明存在(t_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)都是方程组的解,那么
又因为(m_i)两两互质,所以M整除(x_1-x_2),所以该方程组的任意两个解之间必然相差M的整数倍。
证毕
扩展中国剩余定理(EXCRT)
若(m_i)不满足两两互质,则上述算法不成立。因为(m_i)不两两互质,则(m_i)不一定会与(M_i)互质,从而不一定有逆元,不能满足上述证明。这时候我们要换个思路:能不能把两个同余方程合并,得到解?
可以改写成
这就是我们常见的二元一次不定方程了,可以用扩展欧几里得求得一组解(K1,K2)
(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)