扩展欧几里德看了好几天,日常忘记
大概就是 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,数论看不出来,看的出也不会写的啦)。