首先说一下霍纳法则这对于多佽幂来说,减少乘法是很重要的因为相比加法,乘法的执行效率更低
我们先看一下这样一个多项式
再看一下霍纳法则执行过程:
所以我們再看他的实现代码
二进制幂他是一种霍纳法则在幂上的应用
二进制幂运算有两种实现一种是从左到右,一种是从右到左
看一下计算a^13从咗到右的二进制幂运行过程
0 |
再看一下计算a^13从左到右的二进制幂运行过程
* 二进制幂 其实核心还是使用霍纳法则的变形 * 幂二进制霍纳表达式(数組顺序幂次高到底) // b[0]一定为1(要么为1要么为0),因为它是最高位系数,最高位系数只能是1 * 幂二进制霍纳表达式(数组顺序幂次高到底)该算法效率O(logn)但由于二进制幂算法依赖指数n的二进制形式,所以他们的有效性被削弱了但在某种场合下,他们还是一种很有效的算法的
0 |