朝花夕拾之欧几里得

gcd(a,b)=gcd(b,a%b) g c d ( a , b ) = g c d ( b , a % b ) .

证明:
r=gcd(a,b) r = g c d ( a , b )
那么存在 r|a,r|b r | a , r | b .
又因为 a%b=aa/bb=akb a % b = a − a / b ∗ b = a − k ∗ b .
akb a − k ∗ b a a b的一个线性组合,因此 r|(a%b) r | ( a % b )
所以 a a b的公约数同样是 b b a%b的公约数,那么他们的最大公约数当然也是相同的。

扩展欧几里得

求解 ax+by=gcd(a,b) a x + b y = g c d ( a , b ) 的任意解。
ax1+by1=gcd(a,b) a x 1 + b y 1 = g c d ( a , b )
bx2+(a%b)y2 b x 2 + ( a % b ) y 2
=bx2+(aabb)y2 = b x 2 + ( a − ⌊ a b ⌋ ∗ b ) y 2
=b(x2aby2)+ay2 = b ( x 2 − ⌊ a b ⌋ y 2 ) + a y 2
=ax1+by1 = a x 1 + b y 1
所以得到等式
y1=x2aby2 y 1 = x 2 − ⌊ a b ⌋ y 2
x1=y2 x 1 = y 2
b=0 b = 0 时,返回 x=1,y=0 x = 1 , y = 0 .

以上我们可以得到一组特解,对于通解, 我们只要考虑
x x 发生变化时,y需要改变多少才是有效解。
x=x0+b/Gcd(a,b)t x = x 0 + b / G c d ( a , b ) ∗ t
y=y0a/Gcd(a,b)t(t) y = y 0 − a / G c d ( a , b ) ∗ t ( 其 中 t 为 任 意 整 数 )

先到这里了,拜拜=v=

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值