美文网首页
扩展欧几里得算法及贝祖定理的证明

扩展欧几里得算法及贝祖定理的证明

作者: M_lear | 来源:发表于2019-01-25 16:59 被阅读0次

欧几里得算法

公式表述:gcd(a,b)=gcd(b,a\%b)
证明:
a 可以表示为 a = kb + r,r = a%b
假设 d 是 (a,b) 的一个公约数,则有
d|a,d|b,而 r = a – kb,因此 d|r
所以 d 也是 (b,a%b) 的公约数.

除了上面这个经典算法,还有 stein 算法用来求解最大公约数,只有整数的移位和加减法,比欧几里得算法在大整数上更有优势,可以去了解一下。

扩展欧几里得算法求解贝祖等式

贝祖定理(一般形式)

对于不全为 0 的自然数 a,b,则必然存在整数 x , y (不唯一)满足等式ax+by=gcd(a,b)

上面的等式就称做贝祖等式。

扩展欧几里得算法能够求解贝祖等式的正确性证明

设 a > b

  1. 当 b = 0 时,gcd(a,b) = a
    贝祖等式即 ax = a,解得 x = 1,y 可以取 y = 0
  2. 当 b > 0 时,
    假设 a,b 的贝祖等式的解为x_1,y_1,即a\cdot x_1+b\cdot y_1=gcd(a,b)\cdots\cdots1
    b,a%b 的贝祖等式的解为x_2,y_2,即b\cdot x_2+a\%b\cdot y_2=gcd(b,a\%b)\cdots\cdots2
    由欧几里得算法可知gcd(a,b)=gcd(b,a\%b)
    a\cdot x_1+b\cdot y_1=b\cdot x_2+a\%b\cdot y_2
    a\cdot x_1+b\cdot y_1=b\cdot x_2+(a-\lfloor a/b\rfloor\cdot b)\cdot y_2=a\cdot y_2+b\cdot(x_2-\lfloor a/b\rfloor \cdot y_2)
    由恒等关系可得x_1=y_2;y_1=x_2-\lfloor a/b\rfloor\cdot y_2即贝祖等式 1 的解可以由 贝祖等式 2 的解得到,这是一个递归求解的过程,并且随着对 a,b 进行辗转相除,贝祖等式的系数会越来越小,直至变为情况1,而情况1贝祖等式的解是有具体的值的,即 x = 1,y = 0。然后进行回溯计算,最终可以得到x_1,y_1
    C++代码如下:
\\exGcd函数返回a,b最大公约数。贝祖等式的整数解为引用参数x,y
int exGcd(int a, int b, int& x, int& y){
    if(b == 0){
        x = 1;
        y = 0;
        return a;
    }
    int r = exGcd(b,a%b,x,y);
    int t = x;
    x = y;
    y = t - a/b*y;
    return r;
}

贝祖定理(更原始形式)的证明

若整数 a,b 互质,则存在整数解 x,y 满足 ax + by = 1

证明:
X,Y分别是使得aX+bY > 0的整数集合,
s = min\{aX + bY\} > 0,假设此时 X=x_1,Y=y_1
则有ax_1+by_1=s
假设 a 除以 s 的商为 k,余数为 r(0\le r < s)
则有r=a-ks=a-k(ax_1+by_1)=a(1-kx_1)+b(-ky_1)
但是因为其中1-kx_1,-ky_1\in Z,所以必须有r=0
否则r<s与假设s = min\{aX + bY\} > 0矛盾
s|a,同理可得s|b
sa,b 的公约数,又 a,b 互质
所以有s = 1
即存在整数x,y使得a\cdot x+b\cdot y=1成立。

相关文章

  • 扩展欧几里得算法及贝祖定理的证明

    欧几里得算法 公式表述:证明:a 可以表示为 a = kb + r,r = a%b假设 d 是 (a,b) 的一个...

  • 组合数求解

    扩展欧几里得算法原理求解逆元的方法(本文采用扩展欧几里得算法进行求解)求组合数的两种方法Lucas定理

  • 学习列表

    kmp//emmm 搁浅 Manacher//十之八九 hash 中国剩余定理 深入了解扩展欧几里得算法 最长公共...

  • 扩展欧几里得算法

    资料 欧几里得算法 扩展欧几里得算法 扩展欧几里得算法应用 欧几里得算法 欧几里得算法用于求两个数的最大公约数 证...

  • 扩展欧几里得算法

    扩展欧几里得算法(Extended Euclidean algorithm)是欧几里得算法(又叫辗转相除法)的扩展...

  • 算法学习(2)----丢番图方程

    之前一篇随笔"算法学习(1)----扩展欧几里得算法"记录了对朴素欧几里得算法和扩展欧几里得算法的学习和认识...

  • 扩展欧几里德算法

    扩展欧几里得算法(英语:Extended Euclidean algorithm)是欧几里得算法(又叫辗转相除法)...

  • 扩展欧几里得算法

    扩展欧几里得算法 对于任意整数a,b,存在一对整数x,y,满足ax+by=gcd(a,b)。证明:当b=0时显然x...

  • 365.水壶问题

    解题思路 裴蜀定理(或贝祖定理),说明了对任何整数a、b和它们的最大公约数d,关于未知数x和y的线性不定方程(称为...

  • 无标题文章

    17.1勾股定理(第1课时 一、内容和内容解析 1.内容 勾股定理的探究、证明及简单应用. 2.内客解析 勾股定理...

网友评论

      本文标题:扩展欧几里得算法及贝祖定理的证明

      本文链接:https://www.haomeiwen.com/subject/ukzmjqtx.html