码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 大步小步(bsgs)算法详解


    大步小步(Baby Step,Giant Step,BSGS)算法,用来求解类似于 a x ≡ b ( m o d a^x≡b(mod ax≡b(mod p ) p) p)的问题,其中 a a a, b b b, p p p已经给出,本算法只能解决 p p p为素数的问题。

    设 m = c e i l ( s q r t ( p ) ) m=ceil(sqrt(p)) m=ceil(sqrt(p)), x = i ∗ m − j x=i*m-j x=i∗m−j,则 a i ∗ m − j ≡ b ( m o d a^{i*m-j}≡b(mod ai∗m−j≡b(mod p ) p) p),同乘 a j a^j aj可得 ( a m ) i ≡ b ∗ a j ( m o d {(a^{m})}^{i}≡b*a^j(mod (am)i≡b∗aj(mod p ) p) p)。

    接下来考虑枚举所有的 j ∈ [ 0 , m − 1 ] j ∈ [0,m-1] j∈[0,m−1],将 b ∗ a j b*a^j b∗aj m o d mod mod p p p加入哈希表(可用map)中,再枚举 i ∈ [ 0 , m ] i ∈ [0,m] i∈[0,m],计算出 ( a m ) i {(a^{m})}^{i} (am)i m o d mod mod p p p,在哈希表中找出对应的 j j j并更新答案,这样 x x x就可以算出了,方程的解也可以求出。

    时间复杂度 O ( s q r t ( p ) ) O(sqrt(p)) O(sqrt(p)), 1 0 16 10^{16} 1016以下都没有问题。

    例题:abc270g,

  • 相关阅读:
    代码随想录-042-LeetCode347.前K个高频元素
    在线疫苗预约小程序|基于微信小程序的在线疫苗预约小程序设计与实现(源码+数据库+文档)
    openEuler快速入门-Navicat远程链接openGauss数据库
    Git | git的简单使用教程
    摄像头参数介绍 ———— 白平衡
    UnrealEngine5 - Niagara粒子系统问题 当发射器不在视口内时,发射物不可见
    AtCoder Beginner Contest 277 G(概率dp+计数)
    Doris安装(一)之docker编译+fe和be的配置与启动
    [业务设计]-秒杀抢票问题
    prometheus helm install 如何配置告警模版
  • 原文地址:https://blog.csdn.net/WANG_ZIYE/article/details/127873999
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号