关于BSGS算法
文章中提到的p,如果不加说明则默认为素数。
BSGS算法适用于在求解形如 a x ≡ b ( m o d p ) a^x\equiv b \pmod p ax≡b(modp)的不等式。
可知 0 ≤ x < p 0\le x<p 0≤x<p,那么可以令 x = A ⌈ p ⌉ − B , 0 < = A , B < = ⌈ p ⌉ x=A\lceil\sqrt{p}\rceil-B,0<=A,B<=\lceil\sqrt{p}\rceil x=A⌈p⌉−B,0<=A,B<=⌈p⌉
所以原问题转换成
a A ⌈ p ⌉ − B ≡ b m o d p a^{A\lceil\sqrt{p}\rceil-B}\equiv b\bmod p\newline aA⌈p⌉−B≡bmodp
即
a A ⌈ p ⌉ ≡ b ∗ a B m o d p a^{A\lceil\sqrt{p}\rceil}\equiv b*a^B\bmod p aA⌈p