我們首先了解一下歐幾里得算法
這個我們在小學應該就接觸過 利用輾轉相除法求最大公約數
用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 #這個才是輸出
這些算法是密碼學等應用比較廣泛的