早教吧 育儿知识 作业答案 考试题库 百科 知识分享

C++求解多项式求(x-2)(x+3)(x-5)的结果x是未知数注意X是未知数,结果是含X的多项式.

题目详情
C++求解多项式
求(x-2)(x+3)(x-5)的结果 x是未知数
注意X是未知数,结果是含X的多项式.
▼优质解答
答案和解析
我明白了,你要实现的是多项式的符号计算.但不应该把那个叫“求解多项式”,x也不是未知数;事实上你是要实现一元多项式的展开(expand)与合并同类项这样的功能,其中x是形式变元.
这个东西的完整实现会比较长,即使只实现一些比较基本的功能也要几百行左右,虽然我手头确有一个很早做的类似的成品,但还是建议你自己做一下,恕不贴出大段的代码.
大致方法是用表实现,表的每节表示多项式的一项,存储指数(index)和系数(coefficient).指数可以就用普通的int型,也可以自己实现一个大整数类;系数根据需要用int型或double型,如果是整系数最好还是自己实现一个大整数类,或利用现成的支持大整数的类库(如开源的NTL库).
一个可行的基本结构如下:
struct PolyNode {
number_type coefficient;
int index;
};
class Polynomial {
public:
// .
private:
list < PolyNode > Poly;
number_type xvalue; // x的值,多项式求值时用.可选
// .
};
需要实现的函数至少要有:
重载+、-、*、+=、-=、*=、=、一元负号运算符.
对iostream的操作.
无参数的构造函数和复制构造函数.
可选的实现如:
重载/、/=、%、%=运算(因高精度除法较难,故不作为基本实现),GCD、LCM函数(最大公因子和最小公倍),expandGCD函数.
乘方、逐项求导和积分运算.
代值运算.
、=运算(字典序).
等等.