IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

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

    summer发表于 2016-06-27 08:29:43
    love 0

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

     

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

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

     

    这种求值安排称为Horner规则。

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


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

    伪代码:

     

    C++代码:

     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. }  



沪ICP备19023445号-2号
友情链接