中国剩余定理(新)
定理内容
中国剩余定理(孙子定理),这是用来解出一堆线性同余方程组同一解的定理,通常会给出一堆同余方程。如下,其中任意两个 \(m_i\) 互质,求解 \(x\)
在定理中设有几个变量 \(M,M_i,t_i\),对于他们有关系
可以看出,其中 \(t_i\) 是 \(M_i\) 关于 \(m_i\) 的逆元。而 \(x\) 有
证明
由上面我们可以知道,中国剩余定理是通过构造来得到一组解, 因此只需要证明可行性即可。
你可以尝试带入进去。比如这里带入第一个式子 \(x \equiv a_1 \pmod {m_1}\)。因为 \(x\) 中除了第 \(1\) 项, 其他所有的 \(a_i \times M_i \times t_i\) 中的 \(M_i\) 里面都有 \(m_1\) 这个因子,那么其他项就可以被取模 \(m_1\) 给完美消掉,只剩下第一项 \(a_1 \times M_1 \times t_1\)。
又因为 \(M_i \times t_i \equiv 1 \pmod {m_i}\), 那么 \(M_1 \times t_1\) 在取模 \(m_1\) 下就为 \(1\) ,那么就只剩下 \(a_1\),符合等式 \(1\),对于其他的等式同理, 这就说明,这是一个正确解。
关于 \(t_i\) 一定存在
证明1
有:
因为 \(\gcd(M_i,m_i) = 1,i \not = j\)。通过裴蜀定理可得式子 \(M_i \times x + m_i \times y = 1\)。
而 \(M_i \times t_i \equiv 1 \pmod {m_i}\),可以化成等式 \(M_i \times t_i + m_i \times y = 1\)。
那么 \(M_i \times x + m_i \times y = 1\) 中的 \(x\) 就是 \(t_i\)。\(M_i\times x + m_i \times y = 1\) 存在,等式\(M_i \times t_i + m_i \times y = 1\) 就一定存在,\(x\) 一定有解,即 \(t_i\) 一定有解,那么 \(t_i\) 就一定可以通过 exgcd 求出。
证明2
证明 \(t_i\) 存在,即证明 \(M_i\) 在取模 m_i 的下存在逆元,即证明 \(M_i\) 与 \(m_i\) 互质即可。
因为 \(M_i\) 中不含 \(m_i\),而其余 \(m_j\) 和 \(m_i\) 互质,因此 \(m_j\) 的乘积也和 \(m_i\) 互质,因此 \(M_i\) 和 \(m_i\) 互质。因此 \(t_i\) 一定存在。命题得证。
通解
值得一提的是 \(M\) 是所有 \(m_i\) 的乘积,那么通解应该也就知道了,即 \(x = x_0 + k \times M\)
我 \(x\) 加上 \(k\) 个 \(M\) 不影响每个 \(m_i\) 取余,它还是 \(a_i\),也就都是合法解。(这里有多组解的原因也是, 有 \(n\) 个式子但能找出来 \(n + 1\) 个未知数(把同余方程列乘等式),因此有无数解)而我们也知道,\(M\) 是最小的递推量了。
所以最小正整数解就是用代码就是 (x % M + M) % M。

浙公网安备 33010602011771号