扩展欧几里得的通解

求ax+by=c的通解

使用扩展欧几里得能得到该方程的一个解,即我们由裴蜀定理能求出ax+by=gcd(a,b)的一个解,那么我们改变下方程,令g=gcd(a,b),对ax*c/g+by*c/g=c,我们也能求出一个解,同时,不难发现,对于该公式,(ac/g)*(x+kb/g)+(bc/g)*(y-ka/g)=c与之等价,所以对于其通解,可以表示为

x=x0+k*b/g,y=y0-k*a/g

我们求出一个解后对x进行(x%(b/g)+b/g)%(b/g)就能得到最小整数解了

证明

  1. ax+by=c
  2. ax0+by0=c
  3. a(x-x0)+b(y-y0)=0
  4. (a/g)(x-x0)=(b/g)(y0-y)
  5. 因为a/g与b/g互素
  6. 所以x-x0=t*b/g  ,  x=x0+t*b/g  ,  y0-y=t*a/g  ,  y=y0-t*a/g
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值