8 中国剩余定理

本文详细介绍了中国剩余定理的概念及应用,展示了如何求解一元线性同余方程组,提供了具体算法实现代码。

百度百科:

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

中国剩余定理1

 

中国剩余定理说明:假设整数m1,m2, ... ,mn两两互质,则对任意的整数:a1,a2, ... ,an,

 方程组(S)

有解,并且通解可以用如下方式构造得到:

 中国剩余定理2

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

 中国剩余定理3

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

 中国剩余定理4

这个就是逆元了

 中国剩余定理5 

通解形式为

 中国剩余定理6 

在模M的意义下,方程组(S)只有一个解:

 中国剩余定理7

 

 

代码:

//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;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值