威爾遜攜手費馬、歐拉給您拜年!

出處:http://blog.csdn.net/synapse7/article/details/19610361

一、威爾遜定理

若p爲質數,則

p|(p-1)!+1

亦:(p-1)! ≡ p-1 ≡ -1(mod p)


例題:

HDU 2973 YAPTCHA (威爾遜定理及其逆定理)

解題報告見http://blog.csdn.net/synapse7/article/details/18728157


二、費馬小定理

假如p是質數,且gcd(a,p)=1,那麼

a^(p-1) ≡1(mod p)

我們可以利用費馬小定理來簡化冪模運算:由於a^(p-1)≡a^0≡1(mod p),所以a^x(mod p)有循環節,長度爲p-1,所以a^x≡a^(x%(p-1))(mod p)


例題:

HDU 4549 M斐波那契數列 (費馬小定理降冪&矩陣快速冪)

HDU 4196 Remoteland


三、歐拉定理

若a,m爲正整數,且gcd(a,m) = 1,則

a^φ(m)≡1(mod m)

我們亦可以利用歐拉定理來簡化冪模運算:a^x≡a^(x%φ(m))(mod m)

例題:

HDU 1395 2^x mod n = 1 (歐拉定理 分解素因數)

HDU 3221 Brute-force Algorithm (矩陣 歐拉定理降冪)


爲下一節做鋪墊,我們將a^x≡a^(x%φ(m))(mod m)變下形:

由於a^φ(m)≡1(mod m)

a^x≡a^(x%φ(m))≡a^(x%φ(m)+φ(m))(mod m)


四、求冪大法(廣義歐拉定理)及其證明

對於同餘式a^b≡x(mod m),如何求出x?(1<=a,m<=10000000001<=b<=10^1000000

注意到b很大,我們可以先採取一些方法降冪。

若gcd(a,m)=1,那麼使用歐拉定理即可:a^b≡a^(b%φ(m))(mod m)

若gcd(a,m)>1,且b>φ(m),則有“求冪大法”——a^b≡a^(b%φ(m)+φ(m))(mod m)

(當b<=φ(m)時直接用快速冪即可)


例題:

FZU 1759 Super A^B mod C

HDU 2837 Calculation


大致證明:

1. 在a的0次,1次,...,b次冪模m的序列中,前r個數(a^0到a^(r-1))互不相同,從第r個數開始,每s個數就循環一次

證明:由鴿巢定理易證。

我們把r稱爲a冪次模m的循環起始點,s稱爲循環長度。(注意:r可以爲0

用公式表述爲:a^r≡a^(r+s)(mod m)


2. a爲素數的情況

令m=(p^r)m′,則gcd(p,m')=1,所以p^φ(m')≡1(mod m')

又由於gcd(p^r,m′)=1,所以φ(m‘)|φ(m),所以p^φ(m)≡1(mod m'),

即p^φ(m)=km'+1,兩邊同時乘以p^r,得p^(r+φ(m))=km+p^r(因爲m=(p^r)m′)

所以p^r≡p^(r+s)(mod m),這裏s=φ(m)

3. 推論:p^b≡p^[r+(b-r)%φ(m)](mod m)

4. 又由於m=(p^r)m′,所以φ(m)≥φ(p^r)=[p^(r-1)](p-1)≥r

所以p^r≡p^[r+φ(m)]≡p^[r%φ(m)+φ(m)](mod m)

所以p^b≡p^[r+(b-r)%φ(m)]≡p^[r%φ(m)+φ(m)+(b-r)%φ(m)]p^[φ(m)+b%φ(m)](mod m)

p^b≡p^(b%φ(m)+φ(m))(mod m)


5. a爲素數的冪的情況

是否依然有a^r’≡a^(r‘+s’)(mod m)?(其中s‘=φ(m),a=p^k)

答案是肯定的,由2知p^s≡1(mod m′),所以p^(s*(k/gcd(s,k))≡1(mod m′),所以當s’=s/gcd(s,k)時纔能有p^(s'k)≡1(mod m′),此時s‘|s|φ(m),且r’=ceil(r/k)<=r<=φ(m)

由r',s'與φ(m)的關係,依然可以得到a^b≡a^(b%φ(m)+φ(m))(mod m)


6. a爲合數的情況

只證a拆成兩個素數的冪的情況,大於兩個的用數學歸納法可證。

設a=a1a2,ai=pi^ki,ai的循環長度爲si

s|lcm(s1,s2),由於s1|φ(m),s2|φ(m),那麼lcm(s1,s2)|φ(m),所以s|φ(m)

r=max{ceil(ri/ki)}<=max{ri}<=φ(m)

由r,s與φ(m)的關係,依然可以得到a^b≡a^(b%φ(m)+φ(m))(mod m)

證畢。


附:三大定理的證明(定理的引用參考《初等數論及其應用》)

一、威爾遜定理

(PS:在利用定理4.10時,僅需用到a^-1的存在性;證明中的“只有”二字要用定理4.11中的“唯一性”)



二、費馬小定理

重申一遍,gcd(a,p)=1



三、歐拉定理

證明前,我們先定義一個概念:


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章