bsgs(baby-step giant-step),即大步小步演算法,常用於求解離散對數問題。該演算法可以在 \(o(\sqrt p)\) 的時間複雜度內求解
\[a^x \equiv b \pmod p
\]我們將求解的答案 \(x\) 設為 \(km-c \ (c < m)\) 的形式,即
\[a^ \equiv b \pmod p
\]在 \(a \perp p\) 條件下,上式等價於
\[a^ \equiv ba^ \pmod p
\]先列舉 \(c\),使用雜湊表(或map
)將所有 \(ba^c\) 的值存起來。
再列舉 \(k\),計算 \(a^\) 的值並尋找是否有 \(ba^c\) 的值與之對應,從而找到方程所有解。
至此,我們找到了模 \(p\) 意義下的所有解。
不難發現,該演算法時間複雜度為 \(o(\max (m,\dfrac))\),當 \(m=\left\lceil \sqrt p \right\rceil\) 時,複雜度最優。
故該演算法的時間複雜度為 \(o(\sqrt p)\)。
此時,\(a^ \equiv ba^ \pmod p\) 是 \(a^ \equiv b \pmod p\) 的必要不充分條件,我們需要進行變形使得 \(a\) 和模數以使用上述演算法求解。
同餘的基本性質:若 \(a,b,d,m \in \mathbf,d \mid a,d \mid b,d \mid m\),則 \(a \equiv b \pmod p\) 等價於 \(\frac \equiv \frac \pmod }\)設 \(d_1=\gcd(a,p)\)。
若 \(d_1 \nmid b\),則方程無解。
否則,將方程變形為
\[\dfraca^ \equiv \dfrac \pmod }
\]若 \(a\) 與 \(\dfrac\) 仍不互素,則不斷重複上述過程,直到 \(a \perp \dfrac\)。
此時,原方程變形為
\[\dfraca^ \equiv \dfrac \pmod }
\]通過第一部分的 bsgs 演算法,不難求出 \(x-m\) 的所有解,只需另外需考慮 \(x < m\)的情況即可。
時間複雜度仍為 \(o(\sqrt n)\)
設 \(g\) 是模 \(n\) 的原根,那麼對於任意 \(a\) 滿足 \(a \perp n\),均存在 \(k\) 使得
\[g^k \equiv a \pmod n
\]這樣的關係有助於把 \(\bmod \ n\) 的乘法轉化為 \(\bmod \ \varphi(n)\) 的加法。
考慮求解 \(x^a \equiv b \pmod p\),滿足 \(b \in \mathbf\) 且 \(p\) 是素數。
設 \(g\) 為模 \(p\) 的原根,由於 \(g^0,g^1,g^2,\cdots,g^\) 構成模 \(p\) 的一組簡化剩餘系且 \(p \nmid x\),故令 \(x=g^c,b=g^t\),得到
\[g^ \equiv g^t \pmod p
\]兩邊同時取離散對數,得到
\[ac \equiv t \pmod
\]我們可以先通過 bsgs 演算法求解出 \(t\),再通過擴充套件歐幾里得演算法求解出 \(c\),即可得到方程的一組特解:\(x_0=g^c\)。
找到一組特解 \(x_0=g^c\) 之後,令 \(x=g^k\),得到
\[g^ \equiv g^ \pmod p
\]故 \(k\) 的所有解為
\[\forall t \in \mathbf z,a \mid t \cdot \varphi (p),k=c+ \dfrac
\]由於 \(a \mid t \cdot \varphi (p)\),則 \(\frac \mid t\),故令 \(t=\frac \cdot i\)
則原方程所有解為
\[\forall i \in \mathbf z,x=g^ \cdot i}
\]
BSGS學習筆記
用於求 a x equiv b pmod 高次方程的最小正整數解 x 其中 c 為素數 引理1 a equiv a i pmod p p 為素數,即 a i 在模 p 的意義下會出現迴圈節 注 varphi p 可能不是最小迴圈節 因為 a equiv 1 pmod p 則 a equiv 1 pm...
學習筆記 省選演算法 數論 BSGS演算法
浙江省神犇協會 神犇1號 zjoi 2018的題大家都ak了嗎?全體神犇 ak了!神犇1號 7號神犇,你認識那個弱弱的xyz32768嗎?神犇7號 是的,我認識!我現在就去d他!x省y市 神犇7號 告訴你,zj的神犇協會從此有乙個規矩 第1天,協會派我,也就是7號神犇來d人,第2天,協會就派49號神...
演算法 BSGS演算法
bsgs演算法用於求解關於x的模方程 a x equiv b mod p p為質數 相當於求模意義下的對數。思想 由費馬小定理,a equiv 1 mod p 在p 1次方後開始迴圈,所以若原方程有解,x in 0,p 1 設 x i m j 有 a equiv b mod p 移項得 i equi...