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