Horner法则

Horner Rule是一种对多项求值的高效方法。

直接计算的话,需要进行的乘法次数为:1+2+3+......+n,

Horner给出的算法:

需要进行的乘法次数为:N次

#include<iostream>
#include<deque>

using namespace std;

double horner(deque<double> & coe,double x,double pre=0.0){
    if(coe.size()<=0)
        return pre;
    double rect=pre*x+coe.back();
    coe.pop_back();
    return horner(coe,x,rect);
}

int main(){
    deque<double> d;
    for(int i=1;i<6;++i)
        d.push_back(i);
    double x=2;
    cout<<horner(d,x)<<endl;
    return 0;
}
posted @ 2012-09-03 09:13  高性能golang  阅读(2892)  评论(0编辑  收藏  举报