当前位置: 首页 > news >正文

扩展BSGS/exBSGS学习笔记

BSGS

我的BSGS学习笔记

算法用途

和BSGS相似,可以处理形如满足

\[a^x\equiv b\pmod m,\text{where }a,n,m\in\Z^+ \]

的最小正整数 \(x\)

思路

我们已知当 \(a\perp m\) 时,原问题转化为BSGS的情况。
而当 \(\gcd(a,m)> 1\) 时,设 \(d=\gcd(a,m)\)

  1. \(d\nmid b\),此时原方程无解。
    证明:

\[\begin{align} \text{Suppose there is a solut}&\text{ion to the original equation.}\\ \text{Let it be }&x_0.\\ \text{Then it is obvoious that }d&\mid a^{x_0}\bmod m\\ \text{Again }d&\nmid b\bmod m\\ \therefore a^{x_0}&\neq b\\ \text{We get a contridiction, } \therefore &x_0\text{ doesn't exist} \end{align} \]

  1. \(d\mid b\),此时将方程所有系数同时除以 \(d\),得到$$\frac ada^{x-1}\equiv \frac bd\pmod {\frac md}$$
    令其解为 \(x_0\),下证 \(x_0\)一定为原方程的解

    \[\begin{align}\because \frac {a^{x_0}}d&=\frac bd+k\frac md,k\in\N\\\therefore a&=b\end{align} \]

    \((a,\frac md)=1\) 时,两边同乘\(\frac ad\)关于\(\frac md\)的逆元后,使用BSGS解决。
    \((a,\frac md)\ne 1\) 时,重复此操作(若可以重复此操作,否则无解),最终会得到

    \[\frac {a^k}{\prod_{i=1}^{k}{d_i}}a^{x-k}\equiv \frac b{\prod_{i=1}^{k}{d_i}} \pmod{\frac m{\prod_{i=1}^{k}{d_i}}} \]

    两边同乘 \(\frac {a^k}{\prod_{i=1}^{k}{d_i}}\) 关于 \(\frac m{\prod_{i=1}^{k}{d_i}}\)的逆元即有BSGS模版。解得 \(x_0\) 后,可得原方程解为 \(x=x_0+k\)
    当然,这里要注意 \(x\in[1,k]\) 的情况,只需枚举一遍 \(x=1,2,\dots,k\) 并检验是否满足即可。

代码

洛谷P4195 【模板】扩展 BSGS / exBSGS

http://www.jsqmd.com/news/592256/

相关文章:

  • 第五节:Skill的灵魂——系统提示词(System Prompt)设计模式
  • 3大维度解析开源7-Zip:高效压缩工具的全方位应用指南
  • Pixel Aurora Engine实际作品:导出含图层信息的PSD用于后续手工精修
  • LLaVA1.5:用三个小改动在 11 个 benchmark 上刷新 SOTA
  • GitHub中文界面插件:让全球最大代码平台说中文的3个核心方法
  • 超越VcXsrv!用xrdp实现WSL图形化双方案对比实测(2024最新版)
  • Z-Image-Turbo-辉夜巫女多模态实践:结合语音输入生成对应场景图像
  • 知识管理新范式:dedao-dl实现得到课程资源备份与永久归档指南
  • 从FaceNet到CLIP:Triplet Loss如何成为AI‘认人识物’的幕后功臣?
  • 雅典官方售后服务中心新址实地考察报告(2026年4月最新版) - 亨得利官方服务中心
  • 别再花钱买模板了!用Coze工作流+剪映,5分钟搞定爆款灵魂画手视频
  • 新手零失败指南:用快马生成的代码一步步搞定dify安装与初体验
  • PDF-Extract-Kit-1.0企业应用:法律合同PDF批量解析与关键字段抽取实战
  • 云服务器被攻击了怎么办? - wuxujia
  • 深入解析cv2.VideoCapture的read函数:从帧捕获到BGR/RGB转换实战
  • BiliTools AI视频总结功能:提升B站内容消费效率的技术方案
  • 实战指南:基于快马AI构建企业级软件安装程序,实现环境检测与静默部署
  • 暗黑3终极按键助手:5分钟快速上手指南,彻底解放你的双手
  • 3分钟学会用Greasy Fork终极改造你的浏览器:从零到精通的完整指南
  • ONNX Runtime静态量化实战:从‘为什么慢’到‘怎么更快’——深入解读量化后端选择与性能调优
  • 终极指南:Ultimaker Cura 3D打印切片软件完整使用教程 [特殊字符]
  • 第六节:结构化数据交互——掌控JSON与YAML输入输出
  • iStoreOS磁盘扩容保姆级教程:从Parted到Resize2fs,手把手解决存储空间不足
  • 如何用ESP32打造你的个性化智能网络收音机:YoRadio完全指南
  • 接口EMC实战:USB 3.0高速传输的“隐形守护者”
  • 边缘计算神器!DeepSeek-R1-Distill-Qwen-1.5B嵌入式设备部署教程
  • 第七节:参数设计的高阶法则——必填与选填的艺术
  • Fort Firewall安全配置进阶:开源工具构建多层次防护策略的实用指南
  • 避免任务饿死:QP/C框架下优先级调度的5个最佳实践
  • 告别手动配置,用快马平台实现openclaw多环境高效部署