原文链接https://www.cnblogs.com/zhouzhendong/p/exCRT.html
扩展中国剩余定理 (exCRT) 的证明与练习
问题模型
给定同余方程组
$$egin{cases}x&equiv&x_1&pmod {p_1}\x&equiv&x_2&pmod {p_2}\ &&vdots\x&equiv&x_n&pmod {p_n}end{cases}$$
求解 $x$ 在对 ${ m lcm}(p_1,p_2,cdots ,p_n)$ 取模的意义下的值,或判断无解。
证明
我们只需要知道如何合并两个方程,就可以将原方程组逐个合并了,所以下面只介绍合并两个方程的方法。
$$egin{eqnarray*}x&equiv& a_1&pmod {p_1}\x&equiv& a_2&pmod {p_2}end{eqnarray*}$$
则 $x=a_1+k_1p_1=a_2+k_2p_2$ 。
令 $p={ m lcm}(p_1,p_2)$,需要求形同 $xequiv apmod p$的一个式子。
$$egin{eqnarray*}a_1+k_1p_1&equiv&a_2+k_2p_2 &pmod {p}\a_2-a_1&equiv&k_1p_1-k_2p_2 & pmod {p}end{eqnarray*}$$
我们先用 exgcd 求解方程 $p_1x+p_2y=gcd(p_1,p_2)$。设 $g=gcd(p_1,p_2),z=a_2-a_1$。
由于 $g|p$ ,所以,如果 $g|z$ 不成立,那么显然 $g+kp|z$ 也不成立,故无解。
否则有解。记 $t=frac zg$ ,则 $k_1=tx_1,k_2=-tx_2$,于是,$aequiv a_1+k_1p_1equiv a_2+k_2p_2pmod p$ ,单次合并完成。
习题
模板题
注:由于博主是很久之前做这道模板题的,所以这份模板很丑。要看模板建议看下面的习题内的代码。
习题