BSGS算法

Baby Step Giant Step(BSGS) 低于线性时间复杂度的离散对数算法 转载请注明 目录 1.离散对数问题 2.BSGS介绍 3.必要的理论知识 3.1费马小定理 3.2第一个引理 3.3同余式有解的充要条件 3.4第二个引理 4.BSGS算法的具体内容 4.1 满足(a,c) = 1 4.1.1解的形式和通解 4.1.2具体内容 4.2不满足(a,c) = 1 4.2.1变形 4.2.2如法炮制 ... 阅读详情

Baby Step Gaint Step算法

这个算法是解决什么的呢?
求关于 y y y的方程
x y ≡ z   (   m o d     p ) x^y\equiv z\ (\bmod\ p) xy≡z (mod p)
的最小整数解
其中保证 ( x , p ) = 1 (x,p)=1 (x,p)=1
其实还是挺暴力的…
为了便于解决,我们把 y y y表示成 i m − j im-j im−j的形式
那么原来的式子就变成了
x i m − j ≡ z   (   m o d     p ) x^{im-j}\equiv z\ (\bmod\ p) xim−j≡z (mod p)
x i m ≡ z ⋅ x j   (   m o d     p ) x^{im}\equiv z\cdot x^j\ (\bmod \ p) xim≡z⋅xj (mod p)
那么我们枚举每一个 j ∈ [ 0 , m ] j\in[0,m] j∈[0,m],记录出 z ⋅ x j z\cdot x^j z⋅xj的值
然后枚举每一个 i i i,看 x i m x^{im} xim的值之前有没有出现过,如果出现过就输出
如果一直没有出现过就无解
m m m显然取 p \sqrt{p} p ​的时候复杂度最优,所以BSGS算法的复杂度是 O ( p ) O(\sqrt p) O(p ​)
但是注意记录的时候最好使用哈希,用STL的话不要用 m a p map map,因为 m a p map map会多一个 l o g log log
用STL就用unordered_map
但是这个东西c++11才有,如果编译器不能运行的话,在编译的时候加一行指令
-std=c++11
就可以啦

给出关键代码:

unordered_map<ll,ll> var;
ll BSGS(ll x,ll z){
	var.clear();
	ll m=ceil(sqrt(mod));
	for(ll i=0,j=z;i<=m;i++,j=j*x%mod)var[j]=i;
	for(ll i=1,j=Qpow(x,m),k=j;i<=m;i++,j=j*k%mod)if(var.count(j))return i*m-var[j];
	return -2;
}

模板题:
[SDOI2011]计算器

BSGS算法初探 前言 BSGSBSGSBSGS算法,全称Baby&amp;amp;nbsp;Step&amp;amp;nbsp;Giant&amp;amp;nbsp;StepBaby\ Step\ Giant\ StepBaby&amp;amp;nbsp;Step&amp;amp;nbsp;Giant&amp;amp;nbsp;Step,即大小步算法。某些奆佬也称其为拔(Ba)山(Shan)盖(Gai)世(Shi)算法。 它的主要作用是求解形式如xt≡y(mod& 阅读详情

相关推荐

【SGU 261】BSGS算法详解

BSGS(baby-step gaint-step),大步小步算法,该算法可以在时间复杂度内求解 算法描述 我们令,,这样我们可以保证 由于我们知道,我们可以先枚举B算出右边,存在一个hash表里面,然后再枚举A计算左边的的值,然后去判断hash表里面是否...

天才小熊猫的博客 367

BSGS及其扩展

BSGS及其扩展 BSGS(大步小步算法) BSGS是一种用于求解ax≡b(modp)a^x\equiv b\pmod{p}ax≡b(modp)(a,b,m(a,b,m(a,b,m已知且gcd(a,p)=1)gcd(a,p)=1)gcd(a,p)=1),时间复杂度为O(p)O(\sqrt p)O(p​) 其实还是有点暴力 我们考虑令x=im−k,0≤k<mx=im-k,0\leq k<...

Daniel__d的博客 340

华为S5720交换机堆叠配置

S5720交换机,做下堆叠,两条线,交叉互联(即A交换机23口连到B交换机24口,A交换机24口连接B交换机23口)。PS:S5720堆叠可基于电口或者光口做,本次测试基于电口。 SWA配置 # 改名 [Huawei]sysname SWA # 最好先shutdown接口 [SWA]interface GigabitEthernet 0/0/23 [SWA-GigabitEthernet0/0/23]shutdown [SWA-GigabitEthernet0/0/23]interface G.

Markdown 6340

【数论】BSGS算法(大步小步算法)

本篇介绍数论中的 bsgs 算法,包括算法引入、算法过程、算法模板、简单例题及详解

Wmiracle的博客 1万+

Oracle数据库安装图文教程 附百度云oracle Database 11g 安装包

一,Oracle数据库安装包下载 1.从Oracle官网下载所需的数据库安装包【下载需要注册登录Oracle账户】     http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html 2.此处有下载好的Oracle Database 11g Release 2  百度云网盘  提取码:z...

向来如此,就一定是对的吗 6万+

RML2016.10a (CNN、LSTM、CNN-LSTM、CNN-LSTM-Multi-head-attention, TensorFlow)

RML2016.10a (CNN、LSTM、CNN-LSTM、CNN-LSTM-Multi-head-attention, TensorFlow) 包含所有数据和代码,支持一键运行(jupyter)

qq_40999533的博客 1481

一篇搞懂BSGS与扩展BSGS算法

朴素BSGS:适用于aaa与ppp互质的离散对数问题,时间复杂度OpOp​,核心是分块查找;扩展BSGS:通过逐步约分处理aaa与ppp不互质的情况,递归转化为朴素BSGS可解的形式,时间复杂度仍为OpOp​;应用场景:数论题目中涉及“求指数”的问题,如模方程求解、密码学中的离散对数问题(OI中常见于NOIP提高组或省选难度题目)

wz150432的博客 906

电商订单系统设计简析(一)

电商所有模块中,订单系统作为最为核心的模块,决定了整个流程能不能顺畅的执行,起着承上启下的作用。相信很多PM都不陌生,到了一家电商公司,总会觉得公司现有的流程有不少问题,因为问题来自四面八方,一下子摸不着到底是哪里出了问题,PM就跟补丁师傅一样,遇到一个补一个。其实很多日常开发和测试提得需求都是表面需求,而这些表面上呈现出的各种问题,都是源自于流程上的不完整或者流程上某个环节上的缺失导致的。订单系...

野蛮非先生的博客 9553

【算法讲25:BSGS】BSGS与扩展BSGS

【算法讲25:BSGS】引入BSGS代码扩展BSGSExBSGS递归版代码非递归版 yjw的博客入口 引入 P3846 [TJOI2007] 可爱的质数/【模板】BSGS 给定一个质数 ppp 以及整数 a、ba、ba、b 你需要给出最小的非负整数 xxx,满足: ax≡b(modp) a^x\equiv b\pmod p ax≡b(modp) 或输出无解。 2≤a,b<p<2312\le a,b<p<2^{31}2≤a,b<p<231 BSGS 全称为 Bab

溢流眼泪的博客 742

Latex小白也能搞定!5分钟教你用Overleaf打造个性化简历(附免费模板)

本文为LaTeX新手提供了一份快速上手指南,教你如何在5分钟内使用Overleaf在线平台和现成模板,轻松打造专业且个性化的简历。文章详细介绍了从选择模板、替换个人信息到进行颜色、图标等个性化调整的完整流程,让你无需深入学习LaTeX语法,即可高效制作出排版精美、脱颖而出的求职简历。

2a4s6d8f0g的博客 682

从传感器到执行-智能家居 Agent 的感知-决策-执行闭环

本文提出了一种面向智能家居的感知型Agent架构,通过"感知-决策-执行"的闭环系统实现智能化控制。感知模块整合多源传感器数据,决策模块基于规则或机器学习模型生成控制策略,执行模块完成设备操作。系统能够实时监测环境参数和用户状态,自动调节温度、照明等设备,提升家居舒适度。该架构可扩展为多模态感知与强化学习相结合的智能系统,为智慧家居发展提供技术基础。

一键难忘的博客 1119

扩展BSGS算法

先来康康这个问题。 给定三个正整数A,B,PA,B,PA,B,P,求关于xxx的方程的最小正整数解: Ax≡B(mod P)A^x\equiv B(mod\ P)Ax≡B(mod P) 我们令x=a⌈P⌉−b,a∈N,b∈Nx=a\lceil \sqrt{P}\rceil-b,a \in N,b \in Nx=a⌈P​⌉−b,a∈N,b∈N 由欧拉定理: Aϕ(P)≡1(mod...

C20181503csy的博客 742

Codex 团队如何用自己的产品构建产品——整个 Spec 只有 10 个要点

OpenAI Codex团队采用极简产品开发模式,整个产品规格仅10个要点。团队50-100人长期仅1名PM,设计师代码量已超过工程师。产品负责人Alexander Embiricos透露,团队几乎不写详细文档,仅在需要协调时写简短要点。OpenAI采用独特规划哲学:只做8周内短期或长期方向性规划,拒绝中期路线图。2025年GPT-5.2 Codex发布后,模型能力突破催生了桌面应用开发。团队强调"让离代码最近的人做决策",PM角色转变为"填空者",设计师与工程师界限

346

BSGS算法 扩展BSGS算法 模板

BSGS算法 可以快速的求出,满足a^x ≡ b(mod p)的最小的非负整数x (p必须为质数,即 gcd(a,p) == 1) 我们先将x拆分成i*m-j的形式(其中m为sqrt(p)向上取整的值,则原式化为 ≡ b (mod p) ) 显然 0<=j<m 1<=i<=m 移向后得 ≡ b*(mod p) 我们从 0-m 枚举 j,并将 ...

StarrYooSkY的博客 623

SAP_SD模块信用管理-最早未清项判断逾期

在 SAP SD 模块的信用管理(Credit Management) 中,系统可以通过 最早未清项(Oldest Open Item) 来判断客户是否存在逾期,从而影响订单的信用检查结果。例如: 定义最大未清项目%为1%,未清天数为1天,即允许客户“逾期1天的未清应收帐款/该客户的应收帐款余额”最大比例为1%,若超过1%则将被信用冻结。的信用检查功能,用于判断客户是否有账龄过长的未清款项,并据此决定是否允许新的销售订单继续处理。然后在查看客户的信贷信息可以看到,最早的未清信息显示在系统中。

我小时候很黑的博客 861

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

bsgs算法

bsgs算法 bsgs算法,又称大小步算法(某大神称拔山盖世算法)。 主要用来解决   A^x=B(mod C)(C是质数),都是整数,已知A、B、C求x。(poj 2417 Discrete Logging ) 具体步骤如下: 先把x=i*m-j,其中m=ceil(sqrt(C)),(ceil是向上取整)。 这样原式就变为A^(i*m-j)=B(mod C), 再变为A^j

clover_hxy的博客 3万+

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

【算法】BSGS算法

BSGS算法 BSGS算法用于求解关于x的模方程\(A^x\equiv B\mod P\)(P为质数),相当于求模意义下的对数。 思想: 由费马小定理,\(A^{p-1}\equiv 1\mod P\),在p-1次方后开始循环,所以若原方程有解,\(x_{min}\in[0,P-1]\)。 设\(x=i*m+j\),有\(A^{i*m+j}\equiv B\mod P\),移项得\({(...

denge2160的博客 449

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

BSGS算法 学习笔记

因为你,我懂得了爱。

zyf2000 7295

BSGS算法及其扩展

bsgs算法: 我们在逆元里曾经讲到过如何用殴几里得求一个同余方程的整数解。而\(bsgs\)就是用来求一个指数同余方程的最小整数解的:也就是对于\(a^x\equiv b \mod p\) 我们可以用\(bsgs\)在\(O(\sqrt n)\) 的复杂度内求出关于\(x\)的最小正整数解。(前提是\(p\)为质数) \(a^x\equiv b \mod p\) 我们可以知道如果我们的模数p是一...

weixin_30326745的博客 239

关于BSGS算法

关于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

WedsonLin的博客 411
上一篇: [USACO17OPEN] COWBASIC
下一篇: [SDOI2013] 随机数生成器
NephrenRuqInsania
博客等级 码龄8年 20粉丝 115原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值