这道题目真是太坑爹了。。。狂Wa无数次。
将原来那个看成X0,最后答案再加1,这样会简单一点,假设答案是n(最后需要+1),那么不断迭代会发现
Xn=A^nX0+(A^n-1+A^n-2+...+1)B≡t(mod p),然后运用等比数列公式得到A^nX0+(A^n-1)/(A-1) *B≡t(mod p),两边同乘(A-1),移项得到:
[(a-1)*X0+b] A^n≡t(a-1)+b(mod p),然后就可以运用逆把 A^n求出来,然后就可以运用BSGS(Baby-Step-Giant-Step,Shank大步小步法)得到n了。