顾名思义,快速幂就是快速算底数的n次幂。其时间复杂度为 O(log₂N), 与朴素的O(N)相比效率有了极大的提高。
快速幂算法的核心思想就是每一步都把指数分成两半,而相应的底数做平方运算。这样不仅能把非常大的指数给不断变小,所需要执行的循环次数也变小,而最后表示的结果却一直不会变。
我们举个例子,假设要求a的14次方,把14转二进为:(1110) 2 _2 2,a的14次方就是a的(1110) 2 _2 2次方,示例如下:
a 14 ^{14}
顾名思义,快速幂就是快速算底数的n次幂。其时间复杂度为 O(log₂N), 与朴素的O(N)相比效率有了极大的提高。
快速幂算法的核心思想就是每一步都把指数分成两半,而相应的底数做平方运算。这样不仅能把非常大的指数给不断变小,所需要执行的循环次数也变小,而最后表示的结果却一直不会变。
我们举个例子,假设要求a的14次方,把14转二进为:(1110) 2 _2 2,a的14次方就是a的(1110) 2 _2 2次方,示例如下:
a 14 ^{14}