计算多项式--Horner

计算多项式,有着笨的方法就是例如X^3就是直接用循环去计算x*x*x,这当然是一种但是这样的计算其复杂度是在不断上升的。其对于资源的浪费是显而易见的。

原来的直接计算--用C++来表示

template <class T>

T ployEval(T coeff[],int n,const T  &x)

{

//coeff[]保存的是系数

T y=1,value=coeff[0];

for(int i=0;i<n;i++)

{

y*=x;

value+=y*coeff[i];

}

return value;

}

对于优化的数学算法Horner算法

template <class T>

T ployEval(T coeff[],int n,const T  &x)

{

T value=coeff[n-1];

 for(int i=0;i<n;i++)

{

value=value*x+coeff[n-i];

}

return value;

}

horner 算法相比原来的算法其优化:在剩法的次数上少了近一倍多。其实就现在而言其实对于X^n 这样我们是不是可以将它每次次数除以2,这样会比你直接遍历优化很多。

知道自己还有很多的不足之处,学习是件快乐的事,分享会使自己更加快乐。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值