首页 > 其他 > 详细

计算多项式函数值技巧

时间:2021-02-24 23:41:44      阅读:43      评论:0      收藏:0      [点我收藏+]

形如\(f(x)=a_n·x^n+a_{n-1}·x^{n-1}+…+a_2·x^2+a_1·x+a_0\)的函数,叫做多项式函数,它是由常数与自变量x经过有限次乘法与加法运算得到的。

假设现在有一个最高次幂为n的函数,各项系数存储在数组a中,那么要计算这个函数的某一个函数值,可以:

double f(double x) {
    double res = 0, t;
    for (int i = n; i > 0; i--) {
        t = 1;
        for (int j = 0; j < i; j++) {
            t = t * x;
        }
        res += t * a[i];
    }
    res += a[0];
    return res;
}

这样计算速度非常慢,因为有很多重复的计算。

考虑这样一个多项式,\(f(x)=4·x^4+3·x^3+2·x^2+x+1\),可以对他进行变形:\(f(x)=((((0·x+4)·x+3)·x+2)·x+1)·x+1\),这样计算可以比边大量的重复运算,代码如下:

double f(double x) {
    double res = 0;
    for (int i = n; i >= 0; i--) {
        res = res * x + a[i];
    }
    return res;
}

以上代码中,0次项系数存储在\(a[0]\)中,1次项系数存储在\(a[1]\)中,以此类推。

计算多项式函数值技巧

原文:https://www.cnblogs.com/chantmee/p/14443946.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!