我们首先了解一下欧几里得算法
这个我们在小学应该就接触过 利用辗转相除法求最大公约数
用python代码表示一下:
def gcd(a,b): if a < b: a,b = b,a while b!=0: a ,b= b,a%b return a
接着我们要了解加法逆元与乘法逆元
加法逆元就是:
乘法逆元:
接下来再是利用扩展欧几里得算法求乘法逆元
这里求的 是整数d关于m(要取余的那个)的乘法逆元
我们用python表示下
def findModReverse(a, m) : if gcd(a, m) != 1: return None #这样肯定没答案 自己体会 ul,u2, u3 =1,0, a v1, v2, v3 =0, 1,m while v3!=0: q=u3//v3 vl, v2, v3, ul, u2, u3 = (u1-q*v1), (u2-q*v2), (u3-q*v3), vl, v2,v3 return u1%m #这个才是输出
这些算法是密码学等应用比较广泛的