1.最大公约数
设:gcd(a, b)=kgcd(a, b)=k
a=kc, b=kd(c∈N∗,d∈N∗)a=kc, b=kd(c∈N∗,d∈N∗)
∴c、d互质(c、d的公约数只有1)且c>d∴c、d互质(c、d的公约数只有1)且c>d
∴a−b=k(c−d)∴a−b=k(c−d)
∴gcd(b, a−b)=gcd(kd, k(c−d))∴gcd(b, a−b)=gcd(kd, k(c−d))
假设 d、(c - d)不互质
即 d|(c−d)d|(c−d)
∴ 设c−d=k′dc−d=k′d
∴ c=d(k′+1)c=d(k′+1)
与题设“c、d互质”不符,
∴ d与(c - d)互质
∴gcd(kd, k(c−d))=k∴gcd(kd, k(c−d))=k
∴gcd(a, b)=gcd(b, a−b)∴gcd(a, b)=gcd(b, a−b)
∴gcd(a, b)=gcd(b, a % b)∴gcd(a, b)=gcd(b, a % b)
2.ax + by = gcd(a, b)
ax+by=gcd(a, b)ax+by=gcd(a, b)
=gcd(b, a % b) =gcd(b, a % b)
=bx′+(a % b)y′ =bx′+(a % b)y′
=bx′+(a−[a/b]∗b)y′ =bx′+(a−[a/b]∗b)y′
=bx′+ay′−[a/b]∗by′ =bx′+ay′−[a/b]∗by′
=ay′+b(x′−[a/b]∗y′) =ay′+b(x′−[a/b]∗y′)
∴x=y′, y=x′−[a/b]∗y′∴x=y′, y=x′−[a/b]∗y′
终止条件:
b=0b=0时:a∗1+b∗0=aa∗1+b∗0=a
即x=1, y=0x=1, y=0
递归求解
3. ax + by = c
用扩展欧几里得先求出ax′+by′=gcd(a, b)ax′+by′=gcd(a, b)的一组解, x’, y’及gcd(a, b)的值
若c mod gcd(a, b)≠0c mod gcd(a, b)≠0
方程无解(整数范围内)
令:
c=gcd(a, b)∗kc=gcd(a, b)∗k
∴k=c/gcd(a, b)∴k=c/gcd(a, b)
∴ax+by=c∴ax+by=c
=k∗gcd(a, b) =k∗gcd(a, b)
∴ax+by=akx′+bky′∴ax+by=akx′+bky′
∴ax=akx′,by=bky′∴ax=akx′,by=bky′
∵a!=0且b!=0∵a!=0且b!=0
∴x=kx′,y=ky′∴x=kx′,y=ky′
∵k=c/gcd(a, b)∵k=c/gcd(a, b)
∴x=x′∗c/gcd(a, b)∴x=x′∗c/gcd(a, b)
y=y′∗c/gcd(a, b) y=y′∗c/gcd(a, b)
4. x的非负最小值
用扩展欧几里得先求出ax′+by′=gcd(a, b)ax′+by′=gcd(a, b)的一组解,
x′x′, y′y′及gcd(a, b)gcd(a, b)的值
lcm(a, b)=a∗b/gcd(a, b)lcm(a, b)=a∗b/gcd(a, b)
ax+lcm(a, b)+by−lcm(a, b)=cax+lcm(a, b)+by−lcm(a, b)=c
ax+a∗b/gcd(a, b)+by−a∗b/gcd(a, b)=cax+a∗b/gcd(a, b)+by−a∗b/gcd(a, b)=c
a(x+b/gcd(a, b))+b(y−a/gcd(a, b))=ca(x+b/gcd(a, b))+b(y−a/gcd(a, b))=c
∴∴ ++ 或 任意倍数的b/gcd(a, b)b/gcd(a, b)均有对应的y的整数解
设t=b/gcd(a, b)设t=b/gcd(a, b)
x=((x′∗c/gcd(a, b)) % t+t) % tx=((x′∗c/gcd(a, b)) % t+t) % t 为方程的最小非负解.

748

被折叠的 条评论
为什么被折叠?



