1.什么是快速幂算法
快速幂算法如其名,是用来快速计算某个数的幂次结果的算法,比如66的666666次方,算法复杂度为.
2.快速幂算法实现思路
快速幂的实现核心在于一个公式,故而可以快速的减小幂次.实际算法中多为取a,b为2的幂次数,故而指数是被分为了
个,比如
=
(11的二进制位中对应的这几位就是1)故而算法复杂度为
,而2的幂次数随着运算过程叠加出来就好.实际运用中由于结果过大往往要对结果取余数,这里不断对运算的每个中间结果取余即可,不会影响最终结果,可以从数学推出无影响
3.快速幂模版代码
ll fastpower(ll a,ll b,ll mod)//计算(a^b)%mod
{
ll ans=1;
ll powerofa=a;
while(b){
if(b&1) ans=ans*powerofa%mod;//一种位运算
powerofa=powerofa*powerofa%mod;
b>>=1;
}
return ans;
}