Horner规则求解多项式的值
来源:互联网 发布:酷士多网络云手机 编辑:程序博客网 时间:2024/05/02 04:16
一. 目的与背景知识
1、生成一个多项式
2、根据Horner规则求解多项式的值。
伪代码如下:
y=0
for i=n down to 0
y=A[i]+X*Y
上述伪代码即描述了求解A[0]+A[1]X^1+…+A[N] ( X ^N )
二. 代码实现
1、多项式展示与计算类
#include<iostream>namespace MyAlgorithm{ template <class T> class Polynomial { private: T* Coefficient; int Size; public: Polynomial(T testArray[], int nSize){ Coefficient = testArray; Size = nSize; }; ~Polynomial(){}; void ShowPolynomial(){ using namespace std; cout << "多项式为:" << endl; for (int i = 0; i < Size; i++){ cout << Coefficient[i]; if (i != 0){ cout << "*X^" << i; } if (i != Size - 1){ cout << " + "; } } cout << endl; }; void ComputerValue(T Variable){ using namespace std; cout << "多项式值为:"; double Sum(0.0); for (int i = Size - 1; i >= 0; i--){ Sum = Coefficient[i] + Variable*Sum; } cout << Sum << endl; }; };}
2、调用代码
#include<iostream>#include"Polynomial.h"#include"Test.h"#define N_COUNT 10int main(){ using namespace Test; using namespace MyAlgorithm; using namespace std; LogInfo<double> log = LogInfo<double>(); log.ShowState("测试多项式Horner求值"); log.ShowLine(); TestDataCreator<double, N_COUNT> testArray = TestDataCreator<double, N_COUNT>(RandomArray); Polynomial<double> testPoly = Polynomial<double>(testArray.GetArray(), testArray.GetSize()); testPoly.ShowPolynomial(); testPoly.ComputerValue(3.0); int nWait; cin >> nWait; return 0;}
3、结果输出
三. 错误清单
1、函数未加;导致编译不过。
2、三个源文件CPP共同含有两个main1方法导致编译不过。
3、elseif结构使用导致多项式展示缺少+
4、未加停顿语句,导致窗口一闪而过。
5、对数组地址加下标方式理解不到位。
四. 经验总结
1、没有加命名空间的函数,默认为std.同一个命名空间不能有两个相同的定义。
2、注意逻辑分支的处理。
五. 后续内容
进行数组逆序对的练习。
0 0
- Horner规则求解多项式的值
- Horner规则的多项式求解
- 多项式求解(霍纳规则(Horner Rule))
- 多项式求解(霍纳规则(Horner Rule))
- 霍纳(Horner)规则是采用最少的乘法运算策略,求多项式的值。
- Horner规则实现多项式求值--C语言版
- SICP 练习2.34 多项式求值(horner规则)
- 多项式求值的Horner算法
- 多项式计算的Horner 方法
- 多项式计算的Horner 方法
- Horner规则的递归实现
- 算法笔记02--归纳法之多项式求值(Horner规则)
- Horner规则
- Horner规则
- Horner规则的迭代版本
- 多项式求和(Horner)
- 多项式horner算法学习
- 计算多项式--Horner
- Java异常处理throws,throw关键字try,catch,finally模块
- 使用VS自带命令行工具由.dll生成.lib
- jquery.min.js需不需要引入
- erer
- c++作业-3
- Horner规则求解多项式的值
- 四大组件之Service 前台服务
- QML的Label实现Tooltip提示效果
- 为什么一个java源文件中只能有一个public类?
- 关于表达式计算的问题
- Spark 中 map 与 flatMap 的区别
- 学习css3到底要学些什么
- Android 自定义RecyclerView布局(一)
- [Usaco2008 Oct]灌水(MST)