首先,快速幂的目的就是做到快速求幂
【 使用情况】
当mod一个大数p的时候,还有进行乘法的时候可能会爆long long的时候,就用快速乘或者快速幂。
假设我们要求a^b
按照朴素算法就是把a连乘b次
这样一来时间复杂度是O(b)也即是O(n)级别
快速幂能做到O(logn)
假设我们要求a^b
那么其实b是可以拆成二进制的
该二进制数第i位的权为2^(i-1)
例如当b==11时
a11=a(2^0+2^1+2^3)
首先,快速幂的目的就是做到快速求幂
【 使用情况】
当mod一个大数p的时候,还有进行乘法的时候可能会爆long long的时候,就用快速乘或者快速幂。
假设我们要求a^b
按照朴素算法就是把a连乘b次
这样一来时间复杂度是O(b)也即是O(n)级别
快速幂能做到O(logn)
假设我们要求a^b
那么其实b是可以拆成二进制的
该二进制数第i位的权为2^(i-1)
例如当b==11时
a11=a(2^0+2^1+2^3)