欧几里得算法

1.最大公约数

设:gcd(a, b)=kgcd(a, b)=k

a=kc, b=kdcN,dNa=kc, b=kd(c∈N∗,d∈N∗)

cdcd1c>d∴c、d互质(c、d的公约数只有1)且c>d

ab=k(cd)∴a−b=k(c−d)

gcd(b, ab)=gcd(kd, k(cd))∴gcd(b, a−b)=gcd(kd, k(c−d))

假设 d、(c - d)不互质
d|(cd)d|(c−d)
∴ 设cd=kdc−d=k′d
c=d(k+1)c=d(k′+1)
与题设“c、d互质”不符,
∴ d与(c - d)互质

gcd(kd, k(cd))=k∴gcd(kd, k(c−d))=k

gcd(a, b)=gcd(b, ab)∴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时:a1+b0=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

                =kgcd(a, b)                =k∗gcd(a, b)

ax+by=akx+bky∴ax+by=akx′+bky′

ax=akx,by=bky∴ax=akx′,by=bky′

a!=0b!=0∵a!=0且b!=0

x=kx,y=ky∴x=kx′,y=ky′

k=c/gcd(a, b)∵k=c/gcd(a, b)

x=xc/gcd(a, b)∴x=x′∗c/gcd(a, b)

   y=yc/gcd(a, b)   y=y′∗c/gcd(a, b)

4. x的非负最小值

用扩展欧几里得先求出ax+by=gcd(a, b)ax′+by′=gcd(a, b)的一组解,
xx′, yy′gcd(a, b)gcd(a, b)的值

lcm(a, b)=ab/gcd(a, b)lcm(a, b)=a∗b/gcd(a, b)

ax+lcm(a, b)+bylcm(a, b)=cax+lcm(a, b)+by−lcm(a, b)=c

ax+ab/gcd(a, b)+byab/gcd(a, b)=cax+a∗b/gcd(a, b)+by−a∗b/gcd(a, b)=c

a(x+b/gcd(a, b))+b(ya/gcd(a, b))=ca(x+b/gcd(a, b))+b(y−a/gcd(a, b))=c

x ++ 任意倍数的b/gcd(a, b)b/gcd(a, b)均有对应的y的整数解

t=b/gcd(a, b)设t=b/gcd(a, b)

x=((xc/gcd(a, b)) % t+t) % tx=((x′∗c/gcd(a, b)) % t+t) % t 为方程的最小非负解.
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值