屠龙勇士

这就是一道系数不为1的扩展CRT(本来如果保证有逆元的话是可以直接逆元的,但是不保证有逆元)

那么这篇博客的方法可以学习,至于为什么那就是所有的通解,我们先来推导一下普通的excrt为什么那个样子是通解(见蓝书P155)

我们利用数学归纳法,当\(k-1=1\)时,只有一个方程:\(x\equiv a_1 (mod \: m_1)\),当求出一个特解\(x\)的时候,他的通解就是\(x+i \cdot m_1\),显然满足

假设对前\(k-1\)个方程来说,解集为{\(x_0+i\cdot m\)}(其中\(x_0\)是这个解集中的最小正整数),我们来考虑加入第\(k\)个方程后的通解是多少(假设我们从解集中任选一个解\(x_1\)

显然通解就是\(x_1+t\cdot m\equiv a_k(mod \: m_k)\)的通解,注意\(x_1\)是已知数,故转化为线性方程\(t\cdot m+ m_k\cdot y=a_k-x_1\),那么\(t\)的通解就是\(t+i\cdot \frac{m_k}{gcd(m,m_k)}\),而我们有\(gcd\cdot lcm= a\cdot b\),故写成\(t+i\cdot \frac{lcm(m,m_k)}{m}\),代入通解有\(x_1+mt +i\cdot lcm(m,m_k)\),那么通过\(x_1\)求出来的解集就是{\(x_1+mt +i\cdot lcm(m,m_k)\)}

对于前\(k-1\)个方程的解集中的两个解\(x_1,x_2\)(假设\(x_1<x_2\)),分别求出前\(k\)个方程的解集为{\(x_1+mt_1 +i\cdot lcm(m,m_k)\)}和{\(x_2+mt_2 +j\cdot lcm(m,m_k)\)};我们有\(x_1\equiv a_k(mod \: m_k)\)\(x_2\equiv a_k(mod \: m_k)\),所以\(x_2-x_1\equiv 0(mod \: m_k)\),就是说\(x_2-x_1\)\(m_k\)的倍数,同理可得\(x_2-x_1\)\(m\)的倍数,也就是说\(x_2-x_2\)是两者的公倍数,由于公倍数是最小公倍数的倍数(复习一下,这个定理从质因数分解之后取max理解),所以\(x_2-x_1\)是最小公倍数的倍数,进而可以得到任意取出的解所求出的新的解集是一样的,也就证明完毕了

这道题目也尝试证明一下

稳妥一点的方法是什么?

首先列出所有不定方程,然后对每一个方程化成线性同余方程后解出一个特解\(x_{i}\),那么这个方程的通解就是\(x_i +k\cdot \frac{p_i}{gcd(p_i,b_i)}\),设最终答案为x,那么就可以列出新的若干个不定方程\(x \equiv x_{i} (mod \frac{p_{i}}{gcd(p_i,b_i)})\)

这就又是一般的ex中国剩余定理了

代码见洛谷即可

posted @ 2023-09-07 16:39  最爱丁珰  阅读(2)  评论(0编辑  收藏  举报