线性方程与最大公约数

扩展欧几里得算法:关于整数a,b,以及g=GCD(a,b);设整数x,y存在a*x+b*y=g。(数论相关定理可证明肯定存在一组解(x,y).)

因为GCD(a,b)=GCD(b,a%b),举例:22*x + 60*y = GCD(60, 22)

应用欧几里得算法计算:

60=2*22+16             16=60-2*22 

22=1*16+6                6=22-1*16                           

16=2*6+4                   4=16-2*6

6=1*4+2                      2=6-1*4

4=2*2+0                      0=4-2*2

从这个过程可知当求出最大公约数的时候可由一开始a和b的倍数得到:最新的余数=a的倍数+b的倍数

最后得到的最后一次非零余数为GCD(a,b).这样就得到GCD(a,b)=a*x+b*y的解。

由a=60,b=22; 16=a-2b, 6=b-(a-2b), 4=(a-2b)-2(b-(a-2b)),2=b-(a-2b)-[(a-2b)-2*(b-(a-2b))]=11b-4a得到一组解(-4,11)。

方程a*x+b*y=g,g=gcd(a,b).两边同除以g得到:\small \frac{a}{b}x+\frac{b}{g}y=1,存在一个解\small (x_{1},y_{1}),则所有解\small \left ( x_{1}+k\cdot \frac{b}{g},y_{1}-k\cdot \frac{a}{g}\right ),其中k可为任意整数。

线性方程定理:设a与b是非零整数,g=gcd(a,b).方程a*x+b*y=g总是有一个整数解\small (x_{1},y_{1}),它可由前面叙述的欧几里得算法得到。则方程的每一个解可由\small \left ( x_{1}+k\cdot \frac{b}{g},y_{1}-k\cdot \frac{a}{g}\right )得到,其中k可为任意整数。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值