求解离散对数——BSGS算法の板子_离散对数求解概率算法-程序员宅基地

技术标签: 烧脑的数论  BSGS  板子们  数论  

BSGS这玩意儿好像用的不是很多?好像除了POJ和HDU有两道题,然后就是SDOI的两个题了。。然后关于这玩意儿正确性的很多证明ATP都不是很懂。。这里只是解释一下它的实现过程。。

BSGS

BSGS算法(Baby Step Gaint Step)是用于求解离散对数(即 ALB(mod C) 中的最小的 L )的一种算法。它的实质是一种优化的枚举算法,但是它通过数学分析缩小了枚举的范围,一般在 O(n) O(nlogn) (如果使用STL的map作为哈希表)的时间复杂度内就能出解。

普通的BSGS算法要求 A,C 互质。这里先贴板子再解释。。。(其中powww(a,t,Mod)是计算快速幂 at % Mod 的过程)

void BSGS(LL A,LL B,LL C){
    LL m=ceil(sqrt(C)),k=B%C,am,x;
    bool end=false;
    if (B%C==0){
        printf("No Solution\n");
        return;
    }
    hash.clear();
    hash[k]=0;
    am=powww(A,m,C);
    for (int j=1;j<=m;j++){
        k=k*A%C;hash[k]=j;
    }
    x=1;
    for (int i=1;i<=m;i++){
        x=x*am%C;
        if (hash[x]!=0){
            printf("%I64d\n",((i*m-hash[x]+cnt)%C+C)%C);
            end=true;
            return;
        }
    }
    if (end==false)
      printf("No Solution\n");
}

对于要求的式子 ALB(mod C) ,首先我们设定一个值 M ,并且设 L=iMj 。那么原来的式子就能表示成 AiMjB 。显然我们可以把 Aj 移到等式的右侧变成

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/FromATP/article/details/56013530

智能推荐

角谷猜想 C++实现_角谷猜想c++代码-程序员宅基地

文章浏览阅读1w次,点赞3次,收藏5次。题目描述所谓角谷猜想,是指对于任意一个正整数,如果是奇数,则乘3加1,如果是偶数,则除以2,得到的结果再按照上述规则重复处理,最终总能够得到1。如,假定初始整数为5,计算过程分别为16、8、4、2、1。程序要求输入一个整数,将经过处理得到1的过程输出来。输入 一个正整数N(N <= 2,000,000) 输出 从输入整数到1的步骤,每一步为一行,每一部中描述计算过程。最后一行输出"En..._角谷猜想c++代码

XNA学习笔记——用顶点缓冲和索引缓冲创建地形_positions indices 自动创建地形-程序员宅基地

文章浏览阅读1k次。1: private float[,] LoadHeightData(Texture2D heightMap) 2: { 3: float minimumHeight = 255; 4: float maximumHeight = 0; 5: 6: int width = heightMap.Width; _positions indices 自动创建地形

HTTP keep-alive详解_http keepalived-程序员宅基地

文章浏览阅读7.6w次,点赞57次,收藏204次。1.为什么要有Connection: keep-alive?在早期的HTTP/1.0中,每次http请求都要创建一个连接,而创建连接的过程需要消耗资源和时间,为了减少资源消耗,缩短响应时间,就需要重用连接。在后来的HTTP/1.0中以及HTTP/1.1中,引入了重用连接的机制,就是在http请求头中加入Connection: keep-alive来告诉对方这个请求响应完成后不要关闭,下一次咱们还用这_http keepalived

abaqus-程序员宅基地

文章浏览阅读540次。abaqus实验环境:rhel5.5 selinux是disabled iptables offdesktop24.example.com简介:ABAQUS分布式并行计算(Linux系统)一般而言,ABAQUS并行计算有两种模式:(1) 本地并行:利用同一台计算机的多个处理器进行计算。(2) 分布并行:利用相互连接的多台计算机进行计算,而每台..._abaqus分布式并行计算

内网渗透-权限维持-Windows系统隐藏账户_net user test test123! /add-程序员宅基地

文章浏览阅读696次。内网渗透-权限维持-Windows系统隐藏账户通过建立隐藏账户,制作系统用户远程控制后门,维持Windows系统权限。手法步骤1.首先打开cmd,通过命令,创建一个名为test$的隐藏账户,并且把该隐藏账户提升为了管理员权限。net user test$ test123! /addnet localgroup administrators test$ /add2.使用net..._net user test test123! /add

tomcat 多实例部署_-dtomcat.http.port-程序员宅基地

文章浏览阅读1.2k次。如何以Tomcat多实例方式部署多个项目,以下以实例讲解:情景:在linux系统部署两个项目video和navigator。步骤:1.新建目录:/home/hm/apps/2.tomcat安装包apache-tomcat-8.0.26.tar.gz解压缩到目录/home/hm/apps/apache-tomcat-8.0.263.新建目录/home/hm/apps/tomc_-dtomcat.http.port

随便推点

“blp673是一款什么型号的手机?编程指南“_model:blp673-程序员宅基地

文章浏览阅读135次。总之,blp673是一款功能强大的智能手机,它不仅具备先进的硬件性能,还支持用户进行编程操作。blp673是一款新型号的智能手机,它具有强大的硬件性能和丰富的软件功能。它搭载了最新的处理器和操作系统,为用户提供流畅的使用体验。此外,blp673还拥有高分辨率的显示屏、优秀的摄像头和大容量的存储空间,以满足用户对于多媒体和游戏的需求。除了强大的硬件性能,blp673还提供了丰富的软件功能,允许用户进行编程操作。这个简单的程序展示了blp673手机上的编程能力,用户可以根据自己的需求进行更复杂的编程操作。_model:blp673

解决HBase整合Hive时一直连接地址为localhost2181的zookeeper的问题_hbase单机版 2181无法访问-程序员宅基地

文章浏览阅读1.7k次。解决HBase整合Hive时一直连接地址为localhost:2181的zookeeper的问题问题描述我在搭建HBase集群整合hive的时候,hive一直连接本地的zookeeper,而不是连接HBase集群中配置的zk地址1.HBase起初以为HBase中hbase-env.sh 这个配置没有生效,export HBASE_MANAGES_ZK=false反复检查了配置,应该是没有问题2.Hive检查hive中的zookeeper,也是没有问题的。最后发现hbase.zookee_hbase单机版 2181无法访问

VM中离线安装Ubuntu22.04系统_ubuntu server 22.04 离线-程序员宅基地

文章浏览阅读530次。内存设置2G此处网络适配器中的设备状态的两个方框都不要打钩。_ubuntu server 22.04 离线

Python3 http服务器脚本,支持range请求头部(因此可以用它来在线看mp4视频)-程序员宅基地

文章浏览阅读2.9k次。# -*- coding: gbkimport http.serverimport timeimport socketserverimport osimport threadingimport socket#下面的导入从SimpleHTTPServer.py复制:import posixpathimport urllib.parseimport cgiimport sys

Axis2/c 知识点-程序员宅基地

文章浏览阅读145次。官网文档: http://axis.apache.org/axis2/c/core/docs/axis2c_manual.html从文档中可以总结出:1. Axis2/C是一个用C语言实现的Web Service引擎。Axis2/C基于Axis2架构,支持SOAP1.1和SOAP1.2协议,并且支持RESTful风格的Web Service。基于Axis2/C的Web Service可以..._axis2/c服务端调用axis2_get_instance

企业架构方法论-程序员宅基地

文章浏览阅读3k次。目前主要的两种架构方法(准确的说是方法论),具体的方法也是有的,也有可实际操作层面的东西,那要看很多的各个细分专业层面的东西。比如画流程图,业务流程图、数据流程图、系统交互流程图等等。togafzachmanzachman业务建模分析框架,相比于togaf,直观上直接提供了可操作的东西,可能大家更容易接受一些。这里推荐一个架构设计的专业工具,是免费的,即ArchMateArchi – Open Source ArchiMate Modelling (archim..._企业架构方法论

推荐文章

热门文章

相关标签