快速幂

标签: 快速幂
5人阅读 评论(0) 收藏 举报
分类:

快速幂就是快速算底数的n次幂。其时间复杂度为 O(logN), 与朴素的O(N)相比效率有了极大的提高。

例如
11的二进制是1011
11 = 2³×1 + 2²×0 + 2¹×1 + 2º×1
因此,我们将a¹¹转化为算


常规求幂:

int pow0(int a,int b){
   int r=1;
   while(b--) r*=a;
   return r;
} 

快速求幂:

int pow1(int a,int b){
    int r=1,base=a;//初始r等于2的零次方,base等于a的2的零次方
    while(b){
        if(b&1) r*=base;
        base*=base;
        b>>=1;
    }
    return r;
}


查看评论

零基础快速入门Python网络爬虫

-
  • 1970年01月01日 08:00

快速幂模板

  • 2017年10月18日 11:21
  • 229B
  • 下载

快速幂:一种经过优化的算法

  • 2009年08月04日 17:17
  • 109B
  • 下载

快速幂+快速幂经典例题

快速幂取模算法所谓的快速幂,实际上是快速幂取模的缩写,简单的说,就是快速的求一个幂式的模(余)。在程序设计过程中,经常要去求一些大数对于某个数的余数,为了得到更快、计算范围更大的算法,产生了快速幂取模...
  • zhhe0101
  • zhhe0101
  • 2016-10-15 10:59:48
  • 1547

快速幂的简单解释

快速幂算法,顾名思义就是求幂时速度很快(废话 看了很多博客里的解释,都说得很玄奥……其实快速幂很容易解释的。 比如求3的20次幂,一般我们会用循环乘法来求,也就是需要循环20次。...
  • kencaber
  • kencaber
  • 2016-08-26 16:00:03
  • 1858

LintCode 快速幂

LintCode 快速幂计算ana^{n} % b ,其中a,b和n都是32位的整数。样例 例如 2312^{31} % 3 = 2例如 1001000100^{1000} % 1000 =...
  • shinanhualiu
  • shinanhualiu
  • 2015-12-21 21:43:14
  • 2110

非递归快速幂原理

int quickpow(int m,int n,int k) { int b = 1; while (n > 0) { if (n & 1) ...
  • zy691357966
  • zy691357966
  • 2014-10-02 11:22:33
  • 1908

【每日算法】快速幂

数值的整数次方实现函数double Power(double base, int n) 求base的n次方,不得使用库函数,同时不需要考虑大数问题。Tips问题本身很直观,但是越简单的题越需要细心思...
  • jiange_zh
  • jiange_zh
  • 2016-02-18 11:50:53
  • 3915

快速幂及其简单应用

对快速幂的浅显理解
  • usth_prophet
  • usth_prophet
  • 2017-02-10 03:55:15
  • 124

高精度(快速幂)

https://vijos.org/p/1223 形如2^P-1的素数称为麦森数,这时P一定也是个素数。但反过来不一定,即如果P是个素数,2^P-1不一定也是素数。到1998年底,人们已找到了37个...
  • zjy2015302395
  • zjy2015302395
  • 2017-01-19 17:12:56
  • 377
    个人资料
    等级:
    访问量: 1375
    积分: 421
    排名: 11万+
    博客专栏
    最新评论