快速幂算法
来源:互联网 发布:淘宝男模特收入 编辑:程序博客网 时间:2024/06/10 16:12
现在先来看一到题取余运算||快速幂
看了这道题以后不会快速幂的人就会说这题还不简单吗用高进度乘法+高精度膜法。但是这道题的数据十分大都为长整型数,所以这个办法肯定行不通的,所以我们要来考虑别的方法,那么快速幂就派上用场了。
快速幂从字面上来讲就是快速算底数的n次幂。其时间复杂度为 O(log₂N), 与朴素的O(N)相比效率有了极大的提高
先来看看这两个公式
以b为偶数来举例。
a^b%c = ((a^2)^b/2)%c;
假设b/2还是偶数,则
((a^2)^b/2)%c = (((a^2)^2)^(b/2)/2)%c
所以就很好理解了,话不多说上代码。
#include<cstdio>#include<cstdio>#include<iostream>using namespace std;long long mod(long long a,long long b,long long c) { long long ans=1; while(b) { if(b&1)//位运算相当于b%2==1. ans=ans*a%c; a=a*a%c; b>>=1;//位运算相当于b/=2. } return ans;}int main () { long long b,p,k; cin>>b>>p>>k; cout<<b<<"^"<<p<<" mod "<<k<<"="; cout<<mod(b,p,k)%k;}
阅读全文
0 0
- 快速幂&快速幂取模算法
- 快速求幂算法
- 快速求幂算法
- 快速幂算法
- 快速求幂算法
- 快速幂算法
- 快速幂算法
- 快速求幂算法
- 快速求幂算法
- 快速幂算法模板
- 快速幂算法
- 快速幂 -- 算法详解
- 快速幂算法
- 快速幂算法
- 快速幂算法模板
- 快速求幂算法
- 快速幂算法
- 快速幂算法代码
- Python2.7 & OpenCV3.0实现人脸检测的简单实例
- Android Activity生命周期
- HDU 4489 The King’s Ups and Downs(组合DP)
- pat 乙级 1027. 打印沙漏(20)
- vue.js的computed,filter,get,set的用法及区别
- 快速幂算法
- hdu 6180 Schedule(贪心)
- 持续集成利器-PIPELINE(二)-Multibranch Pipeline 实现feature branch的持续集成
- 无线传感器网络(WSN)在各个领域的应用分析
- java用代码实现高并发
- Android应用隐藏包名
- 特殊进程
- 使用SpringMVC使用异步提交时报406错误
- 我的 redis3.*主从连接失败可能原因