中国剩余定理 ( 的学习 )

 孙子定理 又称为(中国剩余定理)
一般指孙子定理   中国古代求解一次同余式组(见同余)的方法。是数论中一个重要定理。又称中国剩余定理。

现代公式表示为:





int Exgcd(int a,int b,int &x,int &y)
{
    if (b==0)
    {
        x=1,y=0;
        return a;
    }
    int q=Exgcd(b,a%b,y,x);
    y-=a/b*x;
    return q;
}
int CRT(int *a,int *m,int n)
{
    int M = 1;
    int ans = 0;
    for(int i=1; i<=n; i++)
        M *= m[i];
    for(int i=1; i<=n; i++)
    {
        int x, y;
        int Mi = M / m[i];
        Exgcd(Mi, m[i], x, y);
        ans = (ans + Mi * x * a[i]) % M;
    }
    if(ans < 0) ans += M;
    return ans;
}


参考文献:百度百科    Acdreams的博客

posted @ 2016-07-29 18:41  Code-dream  阅读(200)  评论(0编辑  收藏  举报