zoukankan      html  css  js  c++  java
  • 来嘛~整理一下快速幂

    我才发现我虽然学了这么长时间的OI,我居然连快速幂是什么都不知道。

    以至于当自己卡在“完美数”那道题,而后去看题解的时候。

    我发现了一个我虽然听过无数次但是从来不会写的算法。

    快速幂

    于是我飞快地baidu了一下。

    找到了一篇炒鸡棒哒博客。

    不得不说那篇博客写的非常的浅显易懂。

    于是乎,

    我只用了不到10分钟就完全搞懂了快速幂。

    正好嘛~过来写个博客扩充一下自己的博客。


    首先先描述一下这个快速幂算法的思路:

    我们都知道,如果想要求一个幂,

    我们最普通的代码需要的是循环指数次乘积操作。

    而快速幂算法能够大大优化时间的复杂度。

    我们可以将所要求的指数减半,分成两个底数的平方的指数的一般次幂。

    但是,看到这里显然有的人就会提出疑问:

    如果我的指数是奇数怎么解决呢?

    显然-1即可。

    long long fastPower(long long base,long long power){
    	lont lont result=1;
    	while(power>0){
    		if(power&1){
    			result=result*base%1000;
    		}
    		power>>=1;
    		base=(base*base)%1000;
    	}
    	return result;
    }
    

    copy的代码如上面,

    但是那个并不是正经的快速幂函数,

    只是一道十分普通的题的最简便写法。

    仅此而已。

    所以真正的快速幂还是要自己写的。

    嗯,就这样。

    我似乎非常成功的水了一篇博客。

    rua

    ——by 某个不知名的精分患者

  • 相关阅读:
    BZOJ3064: Tyvj 1518 CPU监控
    BZOJ3160: 万径人踪灭
    BZOJ3527: [Zjoi2014]力
    BZOJ2194: 快速傅立叶之二
    FFT模板
    Splay树再学习
    POJ2406 Power Strings KMP算法
    POJ2752 Seek the Name,Seek the Fame KMP算法
    POJ3461 Oulipo KMP算法
    POJ2004 Mix and build Trie树? dp?
  • 原文地址:https://www.cnblogs.com/JingFenHuanZhe/p/KuaiSuMi0916.html
Copyright © 2011-2022 走看看