LG 的数学计划 ---- 第四步 快速幂
快速幂是解决什么问题的怎么一种神奇的东西呢?
考虑这样一个问题,给出b和k,求出b^k的值,由于结果可能很大,再给出p,只要输出对p取模后的答案就好了。
那么,首先讲讲简单的暴力求法:
int query(int b,int k,int p){int rec=1,i;for(i=1;i<=k;i++){rec*=i;rec%=p;}return rec;
}
显然的做法,这里就不再赘述了。
这种做法是显然容易理解的,但是,它实在是不能满足大数据(这里指k特别大的时候)。那么,还有没有一种高效的算法呢?
下面来思考这样一个问题:
对于整数a和n,显然有a^(2*n)=(a^n)^2
。那么我们的2*n次运算就可以优化成n+1了。其实呢,+1与否其实影响不是太大,主要是,现在发生了一件神奇的事情:我们的n次运算是可以被优化到log2(n)的啦啦啦~~~~
不过,对于a^(2*n+1)
,要是简单的 /2 的话,那么我们是不是就少算了一次呢?——>其实这 没有 没有 没有 关系~只要我们在存储答案的变量里乘上a,然后不就可以把 a^(2*n+1)
变成a^(2*n)
了么?
显然,这种算法高效而且很容易懂的吧~
现在贴一贴代码就好了啊~
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int main(){long long n,m,b,p,k,s=1;cin>>b>>p>>k;n=b,m=p;while(p>0){if(p%2==1){p--;s*=b;b%=k;s%=k;}if(p%2==0){p/=2;b=b*b;b%=k;}}b%=k;s%=k;cout<<n<<"^"<<m<<" mod "<<k<<"="<<s;return 0;
}
很神奇吧~那我们就等着进入下一步(矩阵乘法和它的快速幂)吧~
LG 的数学计划 ---- 第四步 快速幂相关推荐
- oracle bbed 使用,Oracle BBED使用 四步快速启动Oracle BBED
Oracle BBED使用,四步快速启动Oracle BBED,环境:Oracle 10g RHEL 5.8,介绍:BBED全称为数据块浏览和编辑.用于对Oracle blo 环境:Oracle 10 ...
- 四步快速配置一个简单高效的文本生成图像基准模型 T2I baseline
本文将介绍一个简单高效的文本生成图像基准模型,该基准模型是DF-GAN20版代码,清楚简单,实用性高,本基准模型代码在他的基础上经过少量简化和处理,虚拟环境也进行了打包,非常适合作为一个基线模型,然后 ...
- 1748. The Most Complex Number/LG的数学计划~~~持续更新ing(反素数求解)
神奇的反素数, 首先定义 g(x) = x的约数个数 而反素数就是对于任意的0 < j < i 有g(j) < g(i)那么就称i为反素数 那么从这个定义中可以发现的是, 反素数一定 ...
- 【CodeForces - 1062C】Banh-mi (贪心,数学,找规律,快速幂)
题干: JATC loves Banh-mi (a Vietnamese food). His affection for Banh-mi is so much that he always has ...
- 快速幂(二进制理解)
一.题目背景 已知底数a,指数b,取模值mod. 求ans = a^b % mod 二.朴素算法(已知可跳过) ans = 1,循环从 i 到 b ,每次将 ans = ans * a % mo 时间 ...
- 阿里云asp主机 后台登录一直提示验证码错误_Lazada官方最全开店指南首发!云开店之入驻篇,快速入驻只需四步...
近期后台收到了许多商家朋友关于如何入驻.运营Lazada店铺的问题咨询,平台特此针对Lazada入驻流程做了全面升级优化,同时整理出一套完整的新商家入驻解决方案 -- 极速云开店.作为"春风 ...
- 简单四步,快速判断真菌是否成功侵染宿主植物
撰文 | 同同 涉及植物研究的小伙伴们应该对于真菌植物共生都有所了解,根瘤菌和大豆的共生就是教科书级别的经典案例.植物与真菌的共生作为农业生产中一种重要的共生关系,一直是农业科研工作者的研究热点. ...
- 云信小课堂丨简单四步,快速搭建协同办公系统!
Vol. 8 企业作为社会分工参与的主体,在自身发展以及内部协作中,势必会涉及到各类自有技术和商业信息的互动与交流,而这类信息由于有着高度的保密性和隐私性,所以如微信.QQ 等通用的即时通讯工具很难满 ...
- [转]告别写计划的烦恼!一页纸四步打造出一份牛逼的商业计划
本文转自:https://mp.weixin.qq.com/s?__biz=MjM5Nzc3ODkyMA==&mid=2650196864&idx=1&sn=50112f937 ...
- xbox虚拟服务器,小白玩家看这里!国行Xbox One快速上手攻略 四步搞定
小白玩家看这里!国行Xbox One快速上手攻略 四步搞定 2014-09-25 10:55:04来源:游戏下载编辑:评论(0) 还有4天时间国行Xbox One就将与大陆玩家见面了,想想还是有点小激 ...
最新文章
- 用GDB调试程序(四)
- mysql开启慢查询
- Android实现支付宝AR功能,Android RecyclerView 实现支付宝首页效果
- python开源考试_Github 上 10 个值得学习的 Springboot 开源项目
- java list排序工具类_java 之 Collections集合工具类排序
- kubernetes视频教程笔记 (33)-什么是 Helm
- python+源码如何编译安装mysql_Python源码安装cx_Oracle
- smb服务器速度测试_360路由器做smb服务器各种情况拷贝速度测试外加加装5g网卡...
- matlab中if筛选条件 如何使用方法,excel中多个if函数的套用_excel怎么按条件筛选...
- EJB2.0雨夜教程之一
- python:实现abbreviation缩写算法(附完整源码)
- 在xcode上看不到输出: stepping may behave oddly; variables may not be available
- web前端编程实战实例:制作静态京东首页
- iOS 拓展,icon,尺寸 开发系列 吕文翰
- 微信小程序ios端唤醒不了拨打电话或者部分电话拨打不了解决方案
- 解决vimdiff ‘E97: Cannot create diffs‘错误的一种方法
- Maven整合Nexus私服
- Linux系统大约多大,谁来说说linux系统一般多大
- 2014 年最热门的国人开发开源软件 TOP 100
- 通达信接口测速器的分类
热门文章
- 接收微信支付通知php代码,微信支付开发告警通知实例
- 二维码收款系统即时到账个人码免签支付平台
- EXCEL制作柱形图逆序的意义
- Request processing failed; nested exception is com.alibaba.dubbo.rpc.RpcException问题 学习记录
- 能自行调节温度的新型织物 马里兰大学新发明引发讨论
- C语言处理中文字符,C语言中关于汉字的处理
- 推荐 | 南方医院历时4年构建新HIS系统
- MSM8953 Android 9.0 打开uart串口
- 回顾来路,不忘初心;心之所向,砥砺前行
- 我是如何给妹子优化 Windows 的?