刚刚学习密码,老师让使用欧几里得算法来求解一下乘法逆元,因此,就顺道学习了一下。
(1)欧几里得算法,大体就是递归求解两个数的最大公约数,在本程序中它的作用就是求a,b的最大公约数,若是最大公约数不为0则判断,a关于b,或者b关于a的逆元是不存在的,否则就可以继续进行下去,具体欧几里得算法可以看百度百科中介绍的很是详细;
(2)扩展的欧几里得算法,求得是 a*x + b*y = gcd 的通解 x 和 y,主要的是x = y1,y = x1 – a/b*y1,也是递归实现的,x,y的求解依赖于递归回的x1,y1的值,在本程序中,扩展的欧几里得算法就是来求线性方程的x与y的;