算法研究:一维多项式求值(秦九韶算法)
问题通式:
求指定点X处的函数值。
思路:
运用秦九韶算法
将多项式表述成如下嵌套模式:
于是可以转换成程序语言思想:
可通过for循环来实现。
代码实现:
C语言代码如下:
#include <stdio.h> /* *函数名:double odpf(double array[], int n, double x) *参数:double array[] 系数数组 * int n 表示n项 * double x x的值 *返回值:计算结果sum *说明:One dimensional polynomial function 一维多项式求值 */ double odpf(double array[], int n, double x) { double sum; sum = array[n-1]; for (int i = n - 2; i >= 0; i--){ sum = sum * x + array[i]; } return sum; } int main(){ double array[100]; double x; int n; printf("请输入项数:"); scanf("%d",&n); printf("请输入系数(空格隔开):"); for (int i = n - 1; i >= 0; i--){ scanf("%lf",&array[i]); } while (true){ printf("请输入x的值:"); scanf("%lf", &x); printf("x = %5.2lf, p(%5.2lf) = %.2lf\n\n", x, x, odpf(array, n, x)); }
return 0; }
测试值:
3 1 2 3 2 结果:11.00 6 2 3 1 4 5 3 3 结果:810.00
程序运行结果:
经检验,算法设计正确。
作者:Tab Weng
Email:hlwyfeng(Geek)gmail.com 请将(Geek)换成@
出处:博客园 Tab Weng的博客:http://www.cnblogs.com/hlwyfeng
声明:本文采用知识共享署名-非商业性使用-禁止演绎 3.0 未本地化版本许可协议,允许重新传播和转载分享,但必须在正文显著位置注明署名及原文来源。
Email:hlwyfeng(Geek)gmail.com 请将(Geek)换成@
出处:博客园 Tab Weng的博客:http://www.cnblogs.com/hlwyfeng
声明:本文采用知识共享署名-非商业性使用-禁止演绎 3.0 未本地化版本许可协议,允许重新传播和转载分享,但必须在正文显著位置注明署名及原文来源。