蒟蒻推导拓展欧几里得

定义:

扩展欧几里德算法是用来在已知a, b求解一组x,y,使它们满足贝祖等式: ax+by = gcd(a, b) =d(解一定存在,根据数论中的相关定理)。扩展欧几里德常用在求解模线性方程及方程组中。——百度百科

证明:(是从别的地方学的,感觉这种证明比较好理解,就尝试自己写一个)

这是条件 a*x1+b*y1=gcd(a,b) 

同理  b*x2+(a mod b)*y2=gcd(b,a mod b)

∵ gcd(a,b)=gcd(b,a mod b)

∴ a*x1+b*y1=b*x2+(a mod b)*y2

且a mod b 有另一种表达方式 a-floor(a/b)*b.(floor为向下取整,若两个数都为整形变量则直接会向下取整,不用加floor 函数)

故a*x1+b*y1=b*x2+(a-(a/b)*b)*y2

即a*x1+b*y1=b*x2+a*y2-(a/b)*b*y2=a*y2+b*(x2-(a/b)*y2)

根据多项式恒等定理:(如果两个关于x的多项式恒等,则它们的次数一定相同,且同次项的系数一定相等。)

得x1=y2,y1=x2-(a/b)*y2

若b==0,(计算机中==为=)gcd(a,b)=a.

∴x1=1,y1=0;递归回去就可以得到解了。

同余方程那道题就是gcd(a,b)=1的请况。

习题:同余方程 2012day2

青蛙的约会POJ1061 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值