离散对数(关于方程x^A=B(mod C)的解)
生活随笔
收集整理的這篇文章主要介紹了
离散对数(关于方程x^A=B(mod C)的解)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
首先我們來認識一下離散對數。
離散對數是一種在整數中基于同余運算和原根的對數運算。當模有原根時,設為模的一個原根,則當
時,。此處的是以整數為底模的離散對數值。
之前做過一個題,題意是這樣的:求同余方程的解,其中是素數。
分析:對于本題,我們利用離散對數的知識,先求模的一個原根,那么就有,對于,用Baby Step Giant Step能很好地解決,那么這樣我們再用擴展歐幾里得算法可以計算出,快速冪再進一步求,所以這樣本題完美解決。
那么,如果為合數呢?
其實,如果為合數,我們要做的第一件事就是把素因子分解,即,那么我們分別計算,然后用CRT合并即可。
那么對于,有兩種情況:
? ?(1)
? ?(2)
對于情況(1),我們就直接先求原根,然后利用離散對數來解決。
而對于情況(2),我們有,這樣就轉化為情況(1)了。
假設對于每個的解的個數為,那么方程的解的個數為。
題目:http://acm.hdu.edu.cn/showproblem.php?pid=3731
題目:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1123
總結
以上是生活随笔為你收集整理的离散对数(关于方程x^A=B(mod C)的解)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NEFU705(数论+DP)
- 下一篇: HDU1588(矩阵连乘求和)