霍纳规则中的算法思想
在《算法导论》第二章的思考题中,描述了利用霍纳规则计算多项式的方法。以前自己在写程序的时候都是傻傻的简单粗暴地直接上了,看到这个算法的时候眼前一亮,就多看了一些,果然要比直接计算要效率高很多。为了防止自己以后忘了这个高效的算法,在此记录一下。
简介
据百度百科介绍,霍纳规则用来简化朴素多项式的求值,在中国叫秦九韶算法。霍纳规则是一种将一元n次多项式的求值问题转化为n个一次式的算法。其大大简化了计算过程,即使在现代,利用计算机解决多项式的求值问题时,霍纳规则依然是最优的算法规则
。
直接迭代计算多项式
既然是最优的算法规则,我们可以根据它的计算过程来分析为何它会简化原来的计算过程。一般多项式的表达式如下:
P(n)=∑k=0nakxk=a0+x(a1+x(a2+...+x(an−1