1. 程式人生 > >【日常學習】乘法逆元&&尤拉定理&&費馬小定理&&尤拉函式應用&&常大學霸

【日常學習】乘法逆元&&尤拉定理&&費馬小定理&&尤拉函式應用&&常大學霸

今天花了一個多小時終於把乘法逆元搗鼓明白了 鑑於我拙計的智商抓緊把這些記錄下來 在此本欄目鳴謝里奧姑娘和熱心網友himdd的幫助和支援

那麼正文開始···

逆元是幹什麼的呢?

因為(a/b)mod p ≠(a mod p)/(b mod p)
我們需要想一種方法避免高精
那就是把除法轉化為乘法 因為(a*b) mod p = ( a mod p ) *( b mod p )

怎麼轉化呢?逆元出現了。

若對於數字A,C 存在X,使A * X = 1 (mod C) ,那麼稱X為 A 對C的乘法逆元。

說白了,除以一個數取模的話,和乘以這個數的逆元取模效果是一樣的。

為什麼效果一樣?讓我們來看下面的例子:

12 / 4 mod 7 = ? , 很顯然結果是3
我們現在對於數對 (4,7), 可以知道 X = 2是 4 對7的乘法逆元即2*4=1(mod 7)
那麼我們有(12 / 4) * (4 * 2 ) = (?) * (1) (mod 7)
除法被完美地轉化為了乘法
理論依據:
F / A mod C = ?
如果存在 A*X = 1 (mod C)//為什麼是1,因為上面乘法中(?) * (1) (mod 7)應該是1這個數才會不變
那麼2邊同時乘起來,得到 F * X = ? (mod C)

現在我們知道,除以一個數取模等於乘以這個數的逆元取模 接下來就是求逆元了 求逆元其實就是求使A*X = 1 (mod C)

成立的X,其中A是除法中的除數

尤拉定理-費馬小定理告訴我們:如果a與p互質,則a^phi(p)=1 (mod p);特別地,當p是質數,a^(p-1)=1 (mod p) 因為此時phi(p)=p-1

由於a^phi(p)=1 (mod p) (意思是a^phi(p) mod p =1)
所以a*a^(phi(p)-1)=1 (mod p)  也就是說 對比我們可以看出X就是(phi(p)-1)
我們用X表示a的逆元 那麼它等於a的phi(p)-1次方

而我們又可以證明:當a與f互素時,a關於模f的乘法逆元有唯一解。如果不互素,則無解。如果f為素數,則從1到f-1的任意數都與f互素,即在1到f-1之間都恰好有一個關於模f的乘法逆元。

(互質唯一解不互質無解,雖然我也不明白為什麼,王若鬆前輩課件上也沒講明白,以後再問問吧(其實可以請教常學霸的···))

而事實上,逆元屬於群論的範疇,但鄙人的群論知識基本為0,因此遙指度受

那麼我們到底該如何求除法取模呢?b/a mod c 1.篩法求尤拉函式表O(nlogn) 2.快速冪求出每個函式的逆元O(logn)*列舉要求的數O(n)=O(nlogn) 合計O(2nlogn)=O(nlogn)

這是用費馬小定理求 當然也可以用擴充套件歐幾里得 但我還不大明白 再慢慢學

熱烈歡迎好人TY君回到XB組的窩哼(ˉ(∞)ˉ)唧

——江山代有才人出,各領風騷數百年