扩展欧几里得的通解

文章介绍了如何利用扩展欧几里得算法和裴蜀定理找到线性同余方程ax+by=c的一组解,并推导出通解形式x=x0+k*b/g,y=y0-k*a/g,以及如何通过取模运算获取最小整数解的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

求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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值