002-多项式求值(Horner规则)-归纳法-《算法设计技巧与分析》M.H.A学习笔记

来源:互联网 发布:淘宝卖家怎么联系淘客 编辑:程序博客网 时间:2024/06/06 10:06

我们有一个多项式需要计算。

 

朴素算法需要n(n+1)/2次乘法和n次加法,我们知道做乘法的代价是很高的,所以朴素算法是非常低效的。

利用归纳法我们可以对多项式进行变形:

 

这种求值安排称为Horner规则

我们可以基于这个规则来进行运算,最后求得多项式的结果b0


我们可以直接知道,Horner算法共进行了n次乘法和n次加法

伪代码:

 

C++代码:

[cpp] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. double HornerRule(double a[], int n, double x)  
  2. {  
  3.     double res = 0.0;  
  4.    
  5.     for(int i=n; i>=0; --i)  
  6.         res = x*res + a[i];  
  7.    
  8.     return res;  
  9. }  

0 0
原创粉丝点击