扩展欧几里得回溯过程中y值的变化

扩展欧几里得算法中y初值取0时在回溯结束后为什么可以使最终|x|+|y|最小?
g c d ( A , 0 ) = A gcd(A,0)=A gcd(A,0)=A

则有 A ∗ x + 0 ∗ y = A A*x+0*y=A Ax+0y=A

所以在递归终点 x为1,y可取任意整数

g c d ( a , b ) = g c d ( b , a    m o d    b ) gcd(a,b)=gcd(b,a\;mod\;b) gcd(a,b)=gcd(b,amodb)

a ∗ x 1 + b ∗ y 1 = b ∗ x 0 + ( a − [ a b ] ∗ b ) ∗ y 0 a*x_1+b*y_1=b*x_0+(a-[\frac{a}{b}]*b)*y_0 ax1+by1=bx0+(a[ba]b)y0

整理得

a ∗ ( x 1 − y 0 ) + b ∗ ( y 1 + [ a b ] ∗ y 0 − x 0 ) = 0 a*(x_1-y_0)+b*(y_1+[\frac{a}{b}]*y_0-x_0)=0 a(x1y0)+b(y1+[ba]y0x0)=0

由于上式恒成立,所以

x 1 = y 0 x_1=y_0 x1=y0

y 1 = − [ a b ] ∗ y 0 + x 0 y_1=-[\frac{a}{b}]*y_0+x_0 y1=[ba]y0+x0

a和b的值在递归的过程中已经确定,而在回溯的过程中,上一层的 y 0 y_0 y0越小,本层 x 1 x_1 x1越小

要证明 y 0 y_0 y0取0的时候, ∣ x f i n a l ∣ + ∣ y f i n a l ∣ |x_{final}|+|y_{final}| xfinal+yfinal最小

用数学归纳法证明:

(由于a和b的值已经确定,所以在下面设 [ a b ] = k ( k ∈ N + ) [\frac{a}{b}]=k(k∈N_+) [ba]=k(kN+))

1、当在递归终点时, x 0 ≡ 1 x_0\equiv1 x01,设 y 0 = Y y_0=Y y0=Y

​ 则 x 1 = Y x_1=Y x1=Y

y 1 = − k ∗ Y + 1 y_1=-k*Y+1 y1=kY+1

∣ x 1 ∣ + ∣ y 1 ∣ = ∣ Y ∣ + ∣ − k ∗ Y + 1 ∣ |x_1|+|y_1|=|Y|+|-k*Y+1| x1+y1=Y+kY+1

​ ①当Y≤0

s u m = − Y + 1 − k ∗ Y = 1 − ( k + 1 ) ∗ Y sum=-Y+1-k*Y=1-(k+1)*Y sum=Y+1kY=1(k+1)Y

​ 当且仅当Y=0时,sum有min为1

​ ②当Y>0

​ 有两种,分别为

​ 第一种, 1 − k ∗ Y > 0 1-k*Y>0 1kY>0时, Y < 1 k Y<\frac{1}{k} Y<k1,由于裴蜀定理中x,y均为整数,而此处Y<1,故不成立

​ 第二种, 1 − k ∗ Y ≤ 0 1-k*Y≤0 1kY0时, Y ≥ 1 k Y≥\frac{1}{k} Yk1 s u m = ( k + 1 ) ∗ Y − 1 sum=(k+1)*Y-1 sum=(k+1)Y1,由于Y此时最小为1(k=1),所以 s u m ≥ k ≥ 1 sum≥k≥1 sumk1

故当 y 0 y_0 y0取0时, x 1 x_1 x1 y 1 y_1 y1取得最小值

问题转化 x n x_{n} xn y n y_{n} yn取得最小值时, x n + 1 x_{n+1} xn+1 y n + 1 y_{n+1} yn+1也为最小值
怎么证明第n和第n+1项满足??

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值