摸一发快速幂
标准快速幂的原理就是把指数拆成二进制减少乘法次数。直接放代码实现了:
|
|
显然运算量减少了许多。在大指数幂的时候尤为突出。//其实这样能不能做一个推广?在大指数幂的时候用十进制来乘呢?算术运算次数小应该能弥补逻辑运算量太大的不足?
当然在实操中还会用到取模这个操作。我们可以根本不去考虑乘方运算取模法则:
|
|
同理我们可以将加法分解为快速加法。
|
|
这算是简单的快速幂变形了。然鹅还有一个大boss:
矩阵快速幂
矩阵运算的朴素算法如下:
|
|
显然此算法的复杂度是O(n^3)。
|
|
res数组初始化就等同于单位矩阵E,最终算出的结果是一个res矩阵。
铜牌爷的写法
|
|
至于应用。。今天就摸了。。改日
可以先看看dalao的应用: