【科技】 扩展中国剩余定理(exCRT)

尽管这玩意叫扩展中国剩余定理,但它跟CRT一点关系没有,你只需要会exgcd即可。

考虑这样的一组模线性同余方程组:

\[ \begin{cases} x\equiv b_1 \pmod {a_1}\\ x\equiv b_2 \pmod{a_2}\\ \ \ \ \ \ \vdots\\ x \equiv b_n \pmod{a_n} \end{cases} \]

注意与前面不同的是 \(a_i\) 不一定满足两两互质

这时候再套CRT肯定是不行了(因为 \(M_i\)\(a_i\) 不一定互质,导致逆元可能不存在),这时就要考虑exCRT。

CRT的基本思想是吧若干个同余方程合并为一个等价的同余方程,不难想到其实只需要考虑怎么把两个方程合并为一个即可。

假设现在有这样两个方程:

\[ \begin{cases} x\equiv b_1 \pmod {a_1}\\ x\equiv b_2 \pmod{a_2}\\ \end{cases} \]

不难发现这个方程组可以改写成这样:

\[ \begin{cases} x= b_1+k_1 a_1\\ x=b_2+k_2 a_2\\ \end{cases} \]

于是有 \(k_1a_1-k_2a_2=b_2-b_1\),此时只有 \(k_1\)\(k_2\) 是未知量,很容易判断是否有解(裴蜀定理),如果有解那么先exgcd求出 \(k_1a_1-k_2a_2=d\) 的一组特解 \(K_1\)\(K_2\),那么整个解集就可以得到了,这里只取其中的一组:

\[ \begin{cases} k_1=K_1\frac{b_2-b_1}{d}\\ k_2=K_2\frac{b_2-b_1}{d}\\ \end{cases} \]

那么 \(x=b_1+K_1a_1\frac{b_2-b_1}{d}\)(当然也满足\(x=b_2+K_2a_2\frac{b_2-b_1}{d}\)),而后面的模数显然应该取一个完全剩余系的大小 \(\rm {lcm}(a_1,a_2)\),于是我们成功的把两个方程合并成了一个:

\[x\equiv b_1+K_1a_1\frac{b_2-b_1}{d}\pmod {\rm{lcm}(a_1,a_2)} \]

那么这样逐个合并下去,直到只剩一个方程即为答案(或中途不满足 \(\gcd(a_i,a_{i+1})|(b_{i+1}-b_i)\) 报告无解)。

posted @ 2022-08-24 10:44  wapmhac  阅读(25)  评论(0编辑  收藏  举报