码迷,mamicode.com
首页 > 其他好文 > 详细

同余、中国剩余定理

时间:2014-11-01 17:37:20      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   os   ar   for   sp   strong   

同余:a≡b (mod m),表示a % m==b % m

同余式的运算法则:

bubuko.com,布布扣

--------------------------------------------------------------------------------------------------------------

 

中国剩余定理出自《孙子算经》中的一个问题:
  有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二。问物几何?
这道题实际上就是解这么一个同余方程组:
x≡2 (mod 3)
x≡3 (mod 5)
x≡2 (mod 7)  求解x

 

中国剩余定理:求解同余方程组
n≡a[1] (mod m[1])
n≡a[2] (mod m[2])
......
n≡a[i]  (mod m[i])
该方程组有解的条件:m[i]两两互质


至于该方程的解法,wikipedia上解释得很详细:

bubuko.com,布布扣

 1  int extend_gcd(int a,int b,int &x,int &y){
 2      if (b==0){
 3          x=1;y=0;
 4          return a;
 5      }
 6      else{
 7          int r=extend_gcd(b,a%b,y,x);
 8          y=y-x*(a/b);
 9          return r;
10      }
11  }
12  
13  int CRT(int a[],int m[],int n)
14  {
15      int M=1;
16      for (int i=1;i<=n;i++) M*=m[i];
17      int ret=0;
18      for (int i=1;i<=n;i++)
19      {
20          int x,y;
21          int tm=M/m[i];
22          extend_gcd(tm,m[i],x,y);
23          ret=(ret+tm*x*a[i])%M;
24      }
25      return (ret+M)%M;
26  }
27 
28  

 

//Reference:http://blog.csdn.net/cyendra/article/details/38402869
    中国剩余定理还有一种迭代解法:
    Reference:http://scturtle.is-programmer.com/posts/19363.html

同余、中国剩余定理

标签:style   blog   http   color   os   ar   for   sp   strong   

原文地址:http://www.cnblogs.com/pdev/p/4067291.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!