欧几里德算法(自写理解)

Posted dwvictor

tags:

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

gcd欧几里德算法  求取最大公约数gcd(a,b)

   这个不用多说了

extgcd拓展欧几里德算法 用于求解 ax+by=gcd(a,b)的解

   这个要多说一下

   ax+by=c,a,b,c都是常数)

   这就是一个直线方程嘛!(x,y)就是一条直线的轨迹

   但是呢  我们在计算机中经常要求一些离散的东西,也就是我们要求整数解

   这个咋求呢,就可以用这个神仙方法extgcd可以来求

   我们可以用extgcd求解 ax+by=c的整数点的解

   

   extgcd的内容呢:extgcd可以能求gcd----原理嘛,自己慢慢想这个神仙方法。extgcd不是直接去解我们的方程 ax+by=c的,但是可以间 接求解,extgcd 求解的是什么呢

extgcd 可以直接求解的是 ax+by=gcd(a,b)的解。

也就是说我们调用extgcd可以获得的结果是ax+by=gcd(a,b)的一组整数解。

那我们要求的是什么  ax+by=c 而不是ax+by=gcd(a,b)

那咋办   我们可以设置一个变量 k    axk+byk=gcd(a,b)*k 这个很好说吧!就是等式两边同时乘k。  

如果我们存在整数使得gcd(a,b)*k等于c   那我们要求的ax+by=c的解就出来啦

就是我们extgcd 求出的解乘上这个k

如果不存在这样的k咋办("▔□▔自然那结果就是无解啦

   

以上是关于欧几里德算法(自写理解)的主要内容,如果未能解决你的问题,请参考以下文章

对拓展欧几里得算法的一点理解

POJ 2773 Happy 2006(欧几里德算法)

理解扩展欧几里得算法的实现

密码学 欧几里得算法

密码学 欧几里得算法

GCD: 求两数最大公因数算法欧几里得法原理的个人理解 (80%图片讲解!)