求解: a⋅x+b⋅y=gcd(a,b)
设:
c=b, d=a%b=a−⌊ab⌋⋅b
{a⋅x+b⋅y=gcd(a,b)c⋅x′+d⋅y′=gcd(c,d)=gcd(b,a%b)=gcd(a,b)
得:
a⋅x+b⋅y=c⋅x′+d⋅y′=b⋅x′+(a−⌊ab⌋⋅b)⋅y′=a⋅y′+b⋅(x′−⌊ab⌋⋅y′)
{x=y′y=x′−⌊ab⌋⋅y′
当且仅当: d=0 时 {x′=1y′=0
设: a⋅x+b⋅y=gcd(a,b) 通过Exgcd解得得解为 (x0,y0)
那么:
a⋅x+b⋅y=a⋅x0+b⋅y0
a⋅(x−x0)=b⋅(y0−y)
两边同时除以
gcd(a,b)
agcd(a,b)⋅(x−x0)=bgcd(a,b)⋅(y0−y)
显然: agcd(a,b) 与 bgcd(a,b) 互质
那么:
⎧⎩⎨x−x0=bgcd(a,b)⋅ky0−y=agcd(a,b)⋅k
得:
⎧⎩⎨x=x0+bgcd(a,b)⋅ky=y0−agcd(a,b)⋅k