扩展欧几里德(迷迷糊糊系列)

  扩展欧几里德看了好几天,日常忘记
  大概就是 ax+by==n ,已知a,b,n(n取最小正值),求一组x,y让等式成立。
  然鹅,已知当b==0时,最小正值n就等于a(即x取1)(自己保证a,b>0),看上去有点眼熟(这他喵的不是gcd吗),那我们只需要在递归过程中记录一下就odk了。
  然鹅(又是然鹅),(你压根就没有给出第二步啊,你是个傻子吗,你又不是hhd班长),我们只好推一推头疼的公式啦。
  gcd(a,b)==gcd(b,a%b),所以ax+by==n==bx'+(a%b)y'(这不是和没说一样吗)。(a%b==a-b*[a/b])(下取整咋打呀),所以bx'+(a%b)y'==bx'+(a-b*[a/b])y'==bx'+ay'-b[a/b]y'==b(x'-b[a/b]y')+ay'(眼熟熟,你不是前面那个智障麻
  所以x==y',y==x'-b[a/b]y'(总算推出来了,数学蒟蒻mmp),那么最终的y‘已经求得为0,x’为1,那在gcd后面续上这段公式,就odk了。
  那么扩展欧几里德到底有什么用呢,(我也不知道啊mmp,数论看不出来,看的出也不会写的啦)。

 

转载于:https://www.cnblogs.com/MakiseKurisuLab004/p/8384981.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值