BSGS&&ExBSGS

BSGS 和 ExBSGS 都是用于解决形如形如下式的高次同余方程的。

\[ a^x\equiv b\ (mod\ p) \]

同样的先考虑a,p为质数的情况。

令:

\[ x=i*t-j \]

那么:

\[ a^x\equiv b\ (mod\ p) \iff a^{i*t-j}\equiv b\ (mod\ p) \iff a^t\equiv b*a^j\ (mod\ p) \]

可以对于每一个j∈[0,t-1],把右边式子的结果用map存下(模p意义下)。

假设i枚举的上界为T,那么可以枚举i∈[0,T],一次把左边式子的结果在map中查询即可。

实际上Tmax=(p-1)/ t。

证明:

\[ ∵\ a,p互质\\ ∴\ a^\phi(p)\equiv 1\ (\mod p)\\ ∴ 每经过\phi(p)就会出现之前出现过的答案,即循环节。\\ ∴ x=i*t≤\phi(p)≤p-1\\ ∴ i≤\frac{p-1}{t} \]

基于此,当t取 根号p 时,时间复杂度最低。

当a,p不一定互质时,需要用到ExBSGS。

\[ 令:\ d_0=1\ \ d_1=gcd\ (a,p)\\ 则 \frac{a^x}{d_1}\equiv \frac{b}{d_1}\ (mod\ \frac{p}{d_1})\\ \iff a^{x-1}*\frac{a}{d_1}\equiv \frac{b}{d_1}\ (mod\ \frac{p}{d_1})\\ 如上继续定义:\ d_i=gcd\ (a,\frac{p}{\prod_{j=0}^{i-1}d_{j}}) \]

若d[T+1]恰好第一次等于1,则此时方程可写为:

\[ a^{x-T}*\frac{a^T}{\prod_{i=1}^{T}d_i}\equiv \frac{b}{\prod_{i=1}^{T}d_i}\ (mod\ \frac{p}{\prod_{i=1}^{T}d_i}) \]

发现此时可以直接用BSGS求解!

若过程中存在不能整除的现象,则判定为无解。

转载于:https://www.cnblogs.com/Bhllx/p/10658929.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值