關於 A^x = A^(x % Phi(C) + Phi(C)) (mod C) 的若干證明(指數循環節)

這個證的貌似很少,只找到這裏:http://hi.baidu.com/aekdycoin/item/e493adc9a7c0870bad092fd9,留存一下。

曾經看過如下一個公式:



以上的公式如果第一次見到,難免有不少疑惑:
爲什麼可以這麼寫?限制條件爲什麼是x >= Phi(C),這個公式爲什麼正確?

今天突發奇想,在紙上YY以後得到了以下證明(個人證明,如果有問題歡迎提出)

定理 1:
對於一個數對(A,C) 必然存在一個最小的正整數 L,滿足


其中SPOS 是一個大於等於0的整數(下面具體介紹)
我們稱L 爲(A,C) 的最小循環節長度

證明:
根據鴿巢原理,得到在x >= C 後必然出現循環,從而定理得證.

定理 2:
對於數對 (A,C) 下面的公式必然成立


其中 k >= 0
既L 的任意倍數均爲一個新的循環節長度.
證明:
根據定理1,不難得證.

定理 3:
對於數對 (A,C) 必然存在 一個最大的SPOS >=0 ,滿足
(1)    若x屬於區間 [0,SPOS -1] 內,得到的一個剩餘系的長度爲SPOS;
(2)    該剩餘系和x屬於[SPOS,+oo]的剩餘系的交集爲空!

證明:
對於一個SPOS,由於[0,SPOS-1]內不存在循環,所以x屬於[0,SPOS-1]內得到的值是唯一的.
而第二點的證明也不難,因爲如果不爲空,那麼必然可以縮小SPOS的值.

定理 4:
對於數對 (A,C) 若 (A,C) == 1,那麼 L | Phi(C)

證明:
顯然可以由歐拉公式,得到
A^Phi(C) = 1 (mod C)
而A^0 = 1 (mod C),於是出現了循環
由定理2,該定理得證.

定理5:
對於數對 (A,C) 若 A|C
那麼有
SPOS >= CNT
其中CNT爲滿足  A^CNT | C的最大的正整數

下面分2個情況
(1) A^CNT == C
果斷顯然成立
(2) A^CNT  * B = C
於是我們假設對於[0,CNT] 內存在某個數i,有
A^i = A^x (mod C)
而由於x > CNT (因爲[0,CNT]內不存在循環)
所以
A^CNT * A^(x - CNT) = A^i (mod A^CNT * B)
顯然如果 i < CNT
那麼是不可能有解的
因爲(A^CNT, A^CNT * B) | A^i 顯然不成立

於是Spos >= CNT 得證

定理 6:
對於一個數對 (A,C) 若存在



那麼有 L | M

根據定理1,2 不難得到.



好了,上面寫了那麼多,是爲了介紹 循環節的基本定理
下面開始正題,開始公式的證明

我們對於A 進行分解,得到素因子集合



下面我們把素因子分爲2類
(1)    (Pi,C) == 1
(2)    (Pi,C) != 1

對於第一類情況,我們容易由定理4知道對於每一個 Pi,得到了Li (  數對 (Pi,C) 的最小循環節長) 必然是 Phi(C) 的因子
對於第二類情況,由定理5,”消去 因子”,轉化爲第一類的情況.得到了 這類的素因子Pi 的Li 依然爲Phi(C) 的因子

@2011-01-11 對於第二類情況的更新

由循環定義得到

(Pi^ci)^x = (Pi^ci)^(x + Li) (mod C) (x >= spos)

那麼我們假設C = Pi^CNT * B, 其中 (B, Pi) = 1

那麼

(Pi^ci)^x = (Pi^ci)^(x + Li) (mod Pi^CNT * B)

同時消去Pi因子,最終可以得到:

[Pi^a] * [Pi^ci]^b = [Pi^a] * [Pi^ci]^b * [Pi^ (ci  * Li)] (mod B)

(Pi^a, B) = 1,逆元存在,2邊同時乘上 Pi^a的逆元

[Pi^ci]^b = [Pi^ci]^b * [Pi^ (ci  * Li)] (mod B)

===>

[Pi^ci] ^b = [Pi^ci] ^ (b + Li) (mod B)

Li 爲Phi(B)的因子,B爲C的因子,既 

Li | Phi(B), B| C

 

 

下面我們構造所有素因子的循環,既求他們的LCM,那由於定理6不難知道,(A,C) 的最小循環節長 L | LCM(L1,L2…LK)
而Li |Phi(C)

所以 L | Phi(C)

之後由定理1,2 公式得證.

推薦題目:

http://acm.fzu.edu.cn/problem.php?pid=1759
Problem 1759 Super A^B mod C  直接運用公式
http://acm.hdu.edu.cn/showproblem.php?pid=3221
2009年shanghai B,得到DP以後利用公式
http://acm.hdu.edu.cn/showproblem.php?pid=2837
Calculation 遞歸,注意細節
PS.  標程在某個細節處理錯誤,可是數據是對的.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章