模数非互质的同余方程组(非互质版中国剩余定理)

之前介绍到的中国剩余定理只能求解模数两两互质的同余方程组。

   那么,模数如果不一定两两互质的情况应该怎么求呢?

   下面介绍通过合并方程的方法来解决问题(要用到扩展欧几里德算法)。

 

   顾名思义,合并方程就是把所有的同余方程组合并成一个。

   举个例子,合并同余方程组  x%A=a  ①

                              x%B=b   ②    

   现在给出两种合并的方法:

    1)要把①②式合并成    x%C=c   ③

       易知C一定是A和B的最小公倍数的倍数,否则不可能同时满足①②两式。

       这里我们取C为A,B的最小公倍数,设d=gcd(A,B),则C=A*B/d.

       接下来我们只要求出余数c即可,假设p是方程组①②的其中一个解

       因为③是①②两式的合并方程,所以p也是③的解,所以可以得到c=p%C

       接下来的问题就是怎么求出方程组①②的其中一个解。

       首先,满足方程组①的最小解显然就是x=a

       然后满足①②的解就是 (a+kA)%B=b,其中x=a+kA(k为任意自然数)

       这个方程很明显可以用扩展欧几里德算法即可求得x,这样就完成了两个方程的合并

       

       当所有的同余方程合并成一个方程 x%G=g 时候,g即为最终的最小解。。

  

   2)至于第二种方法,请参考http://972169909-qq-com.iteye.com/blog/1266328

      这种方法我也不是太了解,日后会完善。

转载于:https://www.cnblogs.com/onestow/p/4333226.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值