百度百科:
中国剩余定理给出了以下的一元线性同余方程组:

中国剩余定理说明:假设整数m1,m2, ... ,mn两两互质,则对任意的整数:a1,a2, ... ,an,
方程组(S)
有解,并且通解可以用如下方式构造得到:
设

是整数m1,m2, ... ,mn的乘积,并设

是除了mi以外的n- 1个整数的乘积。
设

这个就是逆元了
通解形式为
在模M的意义下,方程组(S)只有一个解:

代码:
//n个方程:x=a[i](mod m[i]) (0<=i<n)
LL china(int n, LL *a, LL *m) {
LL M = 1, ret = 0;
for(int i = 0; i < n; i ++) M *= m[i];
for(int i = 0; i < n; i ++) {
LL w = M / m[i];
ret = (ret + w * inv(w, m[i]) * a[i]) % M;
}
return (ret + M) % M;
}
本文详细介绍了中国剩余定理的概念及应用,展示了如何求解一元线性同余方程组,提供了具体算法实现代码。
482

被折叠的 条评论
为什么被折叠?



