快速幂
来源:互联网 发布:p图很萌的软件 编辑:程序博客网 时间:2024/06/05 11:59
快速幂
快速幂顾名思义,就是快速算某个数的多少次幂。其时间复杂度为 O(log?N), 与朴素的O(N)相比效率有了极大的提高。
快速幂实现原理
快速幂的原理比较好懂,就是说假如我们求的是3^11,其实比较通用的办法就是
for(int i=1;i<11;i++)
{
a*=3;
}
时间复杂度为O(n), 那么我们有没有更快的办法呢? 有的~就是下面要说的快速幂。
快速幂就是把指数进行一次log(N)级别的变换。11 = 1011=2^3+2^1+2^0
快速幂顾名思义,就是快速算某个数的多少次幂。其时间复杂度为 O(log?N), 与朴素的O(N)相比效率有了极大的提高。
快速幂实现原理
快速幂的原理比较好懂,就是说假如我们求的是3^11,其实比较通用的办法就是
for(int i=1;i<11;i++)
{
a*=3;
}
时间复杂度为O(n), 那么我们有没有更快的办法呢? 有的~就是下面要说的快速幂。
快速幂就是把指数进行一次log(N)级别的变换。11 = 1011=2^3+2^1+2^0
那么我只需要算3^1和3^2还有3^8这样复杂度就降下来了。算3^1需要一次记为a,把a平方就是3^2记为b,把b平方就是3^4记为c,再平方就是3^8记为d,这样把a b d乘以之后就是结果了。这样速度就快起来了
快速幂代码为:
int pow3(int a,int b){ int ans = 1,base = a; while(b!=0) { if(b&1) ans *= base; base *= base; b>>=1; } return ans;}
阅读全文
1 0
- 快速矩阵快速幂
- 快速幂,快速幂取模
- 快速幂 + 快速幂取模
- 快速幂 快速幂取模
- 快速幂&&快速乘法
- 快速幂&快速乘
- 快速幂 快速乘法
- 快速幂 快速幂取模
- 快速幂+快速乘法
- 【快速幂】【快速幂取模】
- 快速乘法-快速幂
- 快速乘/快速幂/矩阵快速幂
- 快速乘 快速幂 矩阵快速幂
- 快速幂,快速幂取模,矩阵快速幂
- 快速幂
- 快速幂
- 快速幂
- 快速幂
- 拓扑排序
- 直线/曲线检测:Randon变换与Hough变换
- 【LeetCode】560.Subarray Sum Equals K解题报告
- HTTP协议状态码详解(HTTP Status Code)
- python 第六周第一题
- 快速幂
- Oracle 安装时提示[INS-13001] 环境不满足最低要求。
- AB1601spi传输慢的问题
- 并发(十一):为什么wait()一定要放在循环中
- mysql(六)约束
- C++面试题
- 数据库个字段类型
- Kotlin的正确使用“姿势”
- rabbitmq 管理界面-Rabbitmq Trace的使用