欧几里得

Posted flash-plus

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了欧几里得相关的知识,希望对你有一定的参考价值。

欧几里得

关于欧几里得定理这个东西,我在全网上也没有找到什么好的讲解。所以决定自己来写一写自己都证了好久

欧几里得的应用一般是用在求 (gcd) 的时候用的,用辗转相除发递归求 (gcd)

相信大家一般都是直接用的,没有想过去证明它,认为他很显然 是吧。

我最开始也是这样以为的,但是却发现自己证了好久。 肯定是我太菜了

不多废话。。。

我就只讲一下欧几里得求 (gcd) 的证明。好像欧几里得就这个作用

先写出众所周知的公式:

(gcd(a,b) = gcd(b, a % b))

然后不断递归就行了。

现在来证明如上等式:

(gcd(a, b) = c)

那么, (a = c * k1)(b = c * k2) ((k1)(k2) 互质)

那么, (gcd(a, b) = gcd(c * k1, c * k2))

(a % b = c * k1 % c * k2 = (k1 % k2) * c)

上面这一步需要好好理解一下,如果(k1)(k2)不互质的话就没有这个结论

证明如下:

原式可以展开如下 : (c * k1 = c * k2 * t + e)

这个 (t) 可以为 (0),而这个 (e) 就是 (a % b)

(a % b = c * k1 - c * k2 * t = c * (k1 - k2 * t)) 这里不就可以显然的看出 (a % b) 就是 (c) 的倍数了。

再写出它需要到达的状态:

(gcd(b, a % b) = gcd(c * k2, c * k1 % c * k2))

在如上面所证,提取一个 (c)

=》 (gcd(c * k2, c * (k1 % k2)))

我们只需要证明这个东西和原式的 (gcd) 相等就行。

那么,我们还需要知道的是 (k2)(k1 % k2) 互质。

那么就能保证两数的 (gcd) 是相等的。

(k3 = k1 % k2)

那么,

以上是关于欧几里得的主要内容,如果未能解决你的问题,请参考以下文章

ACM数论-欧几里得与拓展欧几里得

欧几里得和扩展欧几里得

欧几里得及扩展欧几里得

欧几里得算法和扩展欧几里得算法

欧几里得/拓展欧几里得

[模板]欧几里得算法/扩展欧几里得