前言
作者知道网上有很多关于中国剩余定理的详细讲解,也知道本文相比于它们会逊色许多,但作者会尽力将其讲清楚。谢谢支持!
(本篇文章默认你已经知道什么是模意义,且知道逆元以及简单的模运算)
—————————————-
问题
对于一个数x,已知x≡s1(mod m1), x≡s2(mod m2), …… x≡sn(mod mn),并且保证∀i,j有gcd(mi,mj)=1,求x的最小值。
—————————————-
求解
上述问题所给的等价式有个更书面的名字,叫同余方程组。现在我们考虑如何求得最小值。
我们令M=∏ni=1mi,稍加思考可以得知x+M≡si(mod mi)。故我们可以计算出在模M意义下的x值,也同样可知x在模M意义下的值即是最小答案。(模数比M小不能保证正确)
那么,如何求得x值呢?我们可以考虑构造答案。
—————————————-
构造
我们可以考虑构造x=A1+A2+A3+……+An,其中Ai是跟mi有关的量。
我们思考一下模运算的性质:
观察上面的式子,我们发现假如同时满足以下2条约束,那么答案x即是合法的:
1.对于j≠i, Ajmod mi=0;
2.Aimod mi=si。
不难发现只要Ai是除mi之外其他mj (1≤j≤n且j != i)的公倍数即可满足约束1,结合gcd(mi,mj)=1可知Ai 一定有因子 Mmi。(M的意义见上一节)
那么如何满足约束2呢?
我们不难发现Ai一定含有因子si, 但是因子Mmi的影响如何消除?其实只要乘上Mmi在模mi意义下的逆元就行了。
—————————————-
整理
综合上述分析,我们令M=∏ni=1mi, Ni=Mmi, N−1i为Ni关于模mi意义下的逆元,
那么Ai=Ni×N−1i×si, 答案x即为∑ni=1Ai(mod M)。
—————————————-
总结
1.构造是一种十分常见且有效的求解答案的方法,若发现题目本身约束太多且各个约束存在独立的结果,可以分析题目性质考虑构造答案。
2.中国剩余定理所能解决的范围仅限于模数互质,求解非互质的模数的同余方程组中国剩余定理并不适用。
——wrote by miraclejzd