gcd(a,b) 是求解a和b最大公约数的算法,即辗转相除法
拓展欧几里得:
找到一组(x,y)满足ax+by=gcd(a,b)
算法思路:
在欧几里得算法的基础上,求出x和y
由 gcd(a,b)=gcd(b,a%b)
得 a*x1+b*y1=b*x0+(a%b)*y0
算法是递归的,先处理出来gcd(b,a%b),x0和y0就知道了
因为 a%b=a-a/b*b
所以 a*x1+b*y1=a*y0+b*(x-a/b*y0)
gcd(a,b) 是求解a和b最大公约数的算法,即辗转相除法
拓展欧几里得:
找到一组(x,y)满足ax+by=gcd(a,b)
算法思路:
在欧几里得算法的基础上,求出x和y
由 gcd(a,b)=gcd(b,a%b)
得 a*x1+b*y1=b*x0+(a%b)*y0
算法是递归的,先处理出来gcd(b,a%b),x0和y0就知道了
因为 a%b=a-a/b*b
所以 a*x1+b*y1=a*y0+b*(x-a/b*y0)