Parsing 多项式的正规化
Parsing 多项式的正规化,parsing,normalization,algebra,polynomials,computer-algebra-systems,Parsing,Normalization,Algebra,Polynomials,Computer Algebra Systems,我需要读入一个多项式,然后把它转换成规范化的形式例如,我在4*x*(x^2+4x+3)中读取,它必须转换为4*x^3+16*x^2+12*x 是否有一些棘手的算法,或者我必须自己想一些事情。我认为这基本上只是扩大了这个术语。 我递归地解析这个术语并生成一个解析树,因此规范化操作将应用于这个解析树 感谢所有帮助我的人这可以是表示表达式4*x*(x^2+4x+3)的表达式二叉树: 现在你必须将4x与x^2+4x+3相乘,这可以在这样的二叉树中结束,就像我们人类一样:
我需要读入一个多项式,然后把它转换成规范化的形式
例如,我在
4*x*(x^2+4x+3)
中读取,它必须转换为4*x^3+16*x^2+12*x
是否有一些棘手的算法,或者我必须自己想一些事情。我认为这基本上只是扩大了这个术语。 我递归地解析这个术语并生成一个解析树,因此规范化操作将应用于这个解析树
感谢所有帮助我的人这可以是表示表达式
4*x*(x^2+4x+3)
的表达式二叉树:
现在你必须将4x
与x^2+4x+3
相乘,这可以在这样的二叉树中结束,就像我们人类一样:
+
/ \
+ *
/ \ * 3
* * 4 x
/ \ / \
* ^ * *
4 x x 2 4 x 4 x
然后继续将数字相乘并添加指数。您必须搜索树中的每个运算符,并查找其子代以应用相应的代数规则
希望这有帮助。答案隐藏在矩阵中……没有复杂的算法。恐怕你得想一想。生成树后,你必须建立一套规则来修改树(乘法多项式、添加指数等)。正如@Paul所说,这不是一件容易的事情。
+
/ \
+ *
/ \ * 3
* * 4 x
/ \ / \
* ^ * *
4 x x 2 4 x 4 x