zoukankan      html  css  js  c++  java
  • 中国剩余定理(孙子定理)

    设m1,m2…mk是k个两两互素的正整数
    则同余方程组:
    x ≡ a1(mod m1)
    x ≡ a2(mod m2)
    … …
    x ≡ ak(mod mk)
    记m=m1*m2*m3……mk
    有bj使

    mmjbj1 (mod mj)

    x=i=1kmmjajbj

    ps:x不一定是最小的需要mod m

    例题:求下列同余方程组最小解
    x≡2 mod 3
    x≡1 mod 4
    x≡3 mod 5

    input:
    3
    2 3
    1 4
    3 5
    output:
    53

    code

    #include<cstdio>
    int n;
    int mj[100],aj[100];
    //mj[]指除数,aj[]指余数 
    
    int szdl(){
        int m=1,x=0;
        for(int i=1;i<=n;i++) {
            int mm=m/mj[i];
            for(int j=1;;j++) 
                if((mm*j)%mj[i]==1) {
                    x+=mm*j*aj[i];
                    break;
                }
        }
        return x%m;//注意%m
    }
    
    int main(){
    //  while(~scanf("%d %d",&aj[++n],&mj[++n]));
        scanf("%d",&n);
        for(int i=1;i<=n;i++){
            scanf("%d %d",&aj[i],&mj[i]);
            m*=mj[i];
        }
        printf("%d",szdl());
        return 0;
    }
    版权声明:本文为博主原创文章,未经博主允许不得转载。 博主:https://www.cnblogs.com/Menteur-Hxy/
  • 相关阅读:
    html基础笔记
    webpack实用配置总结
    Vue生命周期
    Vue跨域解决方法
    日历
    绝对地址和相对地址
    HTML+CSS要点
    (利用DOM)在新打开的页面点击关闭当前浏览器窗口
    前端面试
    前端工程师的知识体系
  • 原文地址:https://www.cnblogs.com/Menteur-Hxy/p/9248055.html
Copyright © 2011-2022 走看看