信息竞赛笔记(2)––快速幂

这篇具有很好参考价值的文章主要介绍了信息竞赛笔记(2)––快速幂。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

快速幂

定义

分析 

代码

递归实现

非递归实现(通用方法)

 模意义下取幂


快速幂

定义

快速幂,二进制取幂(Binary Exponentiation,也称平方法),是一个在的时间内计算的小技巧,而暴力的计算需要的时间。

这个技巧也常常用在非计算的场景,因为它可以应用在任何具有结合律的运算中。

                                                                                                                ––––摘于OIwiki

分析 

        我们算n个a相乘是,有时候会因为数据太大而超时,枚举的方法就不适用了.但是我们知道信息竞赛笔记(2)––快速幂,.二进制取幂的想法是,我们将取幂的任务按照指数的 二进制表示 来分割成更小的任务。

        于是我们只需要知道一个快速的方法来计算上述 3 的次幂的序列。这个问题很简单,因为序列中(除第一个)任意一个元素就是其前一个元素的平方。 

        举个栗子:

        信息竞赛笔记(2)––快速幂

这么说,如果你想要计算,就可以推出以下式子:

 

根据上述举例不难发现,求大数字的幂运算已经被我们转化成了形式相同的子运算

代码

代码的话我认为有两种思路,一种是递归实现,一种是非递归实现.

递归实现

long long qkpow(long long x,long long y){
    if(y==0){
        return 1;
    }
    long long res=qkpow(x,y/2);
    if(y%2){
        return res*res*x;
    }else{
        return res*res;
    }
}

非递归实现(通用方法)

由于递归的时间太慢了,所以我们一般不用递归来求快速幂,而是用普通的位运算来求快速幂,理论上两者的时间复杂度是相同的,都是,但是实践上第二种要比递归快得多

long long qkpow(long long x,long long y){
  long long res=1;
  while(y>0){
    if(y&1){
        res=res*x;
    }
    x=x*x;
    y>>=1;
  }
  return res;
}

 模意义下取幂

        模意义下取幂也是一种常见的算法思路,它也可以应用在许多方面,例如它可以用于计算模意义下的乘法逆元。

        既然我们知道取模的运算不会干涉乘法运算,因此我们只需要在计算的过程中取模即可。文章来源地址https://www.toymoban.com/news/detail-471039.html

long long qkpow(long long x,long long y){
  long long res=1;
  while(y>0){
    if(y&1){
        res=res*x%m;
    }
    x=x*x%m;
    y>>=1;
  }
  return res;
}

到了这里,关于信息竞赛笔记(2)––快速幂的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java企业级信息系统开发学习笔记(4.2)Spring Boot项目单元测试、热部署与原理分析

    该文章主要为完成实训任务,详细实现过程及结果见【http://t.csdn.cn/pG623】 1. 添加测试依赖启动器和单元测试 修改pom.xml文件,添加依赖 刷新项目依赖 2. 创建测试类与测试方法 在 src/test/java 里创建 cn.kox.boot 包,创建测试类 TestHelloWorld01 给测试类添加测试启动器注解与Spring

    2024年02月10日
    浏览(52)
  • 2023年第20届信息安全与对抗技术竞赛

    竞赛入口:http://www.isclab.org.cn 信息安全已涉及到国家政治、经济、文化、社会和生态文明的建设,信息系统越发展到它的高级阶段,人们对其依赖性就越强,从某种程度上讲其越容易遭受攻击,遭受攻击的后果越严重。“网络安全和信息化是一体之两翼、驱动之双轮。没有网

    2024年02月04日
    浏览(49)
  • 【算法竞赛】蓝桥杯Python组快速入门指南

    该指南由GPT4编写,用于快速入门蓝桥杯Python组。当然,仅限入门而已 本指南由GPT-4(23年3月未阉割版)编写,曾帮助笔者半天内入门py,并较熟练完成一般难度的算法题目 一直以来笔者都是使用C++作为算法竞赛语言,但是奈何C++组太卷,笔者又太菜,于是另谋他路 Prompt模板

    2024年02月05日
    浏览(47)
  • 2023浙江省大学生信息安全竞赛初赛 部分wp

    Web easy php BBB::__debuginfo() - CCC::__toString() - AAA::__call() RE pyccc uncompyle6.exe 逆不出py 逆出如下文件 分析可知 先初始化一个数组 再对其内的每个元素异或其下标 flag{1t_is_very_hap4y!!} ezapk 反编译apk 解aes Crypto 小小数学家 re 匹配数字和符号进行运算 DASCTF{9d811301-281b-4f4a-8d1a-b38beccf2285} 基

    2024年02月05日
    浏览(54)
  • 第十五届全国大学生信息安全竞赛部分WriteUp

    做了10个,都是烂大街的题目,分数很低。CTF榜单186,以为稳进分区赛了。理论题算上变一千五百多名,华东南二百多名,进不去了,WriteUp也不想上传了。 不是密码选手,但密码非预期搞出来几个 签到电台 关注公众号给的提示“弼时安全到达了”,查找这几个字的中文电码

    2024年02月06日
    浏览(58)
  • 2023陕西省大学生信息安全竞赛web writeup

    早写好了,忘发了,题目质量还行,够我坐大牢 简单的反序列化,exp如下 传参这有个坑,用了Unicode编码,得copy下来进行url编码才能传参,不知道这么干有什么意义,还得绕过Exception,把变量数改一下就能绕过了,跟绕wakeup一样 preg_replace采用了/e的模式,很明显有rce漏洞,简

    2024年02月07日
    浏览(47)
  • 信息学竞赛中的数学 习题集 461-470(10题)

    3279:【例46.1】 完全数 信息学奥赛一本通-编程启蒙(C++版)在线评测系统 3280:【例46.2】 数字统计 信息学奥赛一本通-编程启蒙(C++版)在线评测系统 3281:【例46.3】 素数回文数的个数 信息学奥赛一本通-编程启蒙(C++版)在线评测系统 3282:练46.1 求π的值 信息学奥赛一本

    2024年01月23日
    浏览(45)
  • 电科院密码保密与信息安全竞赛网络攻防宣传赛 Writeup

    战队名称:20221214 战队排名:1 用Winhex打开,最后有一串编码字符,拿去一把梭即可。 目录穿越 GET /icons/.%2e/%2e%2e/%2e%2e/%2e%2e/flag 仔细观察可以看到url编码后的SQL注入语句,mid用于截取字符串,当出现 welcome admin! 说明该字符正确,将正确的字符逐个写入到C脚本变量中,输出得

    2024年04月08日
    浏览(74)
  • 2022浙江省大学生信息安全竞赛技能赛初赛Writeup

    前言:misc浅浅ak了一下,misc2一血misc3二血,最高冲上了第5,不过后来还是嘎嘎掉到第9,crypto和pwn一道没出真的太菜了( 希望周末决赛能好好加油! 拖到010观察得到是逆置的zip压缩包,简单写个脚本倒一下 解开后得到一个缺少文件头的png,补上png文件头 提示CRC校验错误,修

    2024年02月07日
    浏览(50)
  • 学习进度——附《全国青少年信息学奥林匹克系列竞赛大纲》

    得分:150 失误:当题目同行输入两个字符串时,观察中间是否有空格(复制到txt上)。 得分:250 失误:看清高精除低精还是高精除高精。 得分:280 失误:freopen文件名out错写成in。 得分:60 失误:逆元。 得分:90. 注:知识点总结在每个知识对应的板块那里 1005 : ​ 把不是

    2024年02月07日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包