使用继承树模型简化数学表达式

时间:2019-04-12 08:39:37

标签: java inheritance arithmetic-expressions simplify

我一直在努力寻找解决此问题的方法。或者也许是一种适合我所遇到问题的方法。

我们通过层次结构树中排列的类来表示数学表达式。最上面是基本的数学表达式,下面是二进制,一进制,在它们下面是所有运算符,这些运算符使一元表示:否定,cos,sin。二进制:加​​,减,除,战俘,对数。

除了我们有数字和变量。

表达式示例:

new Plus(new Plus(x , 5), 5) => x + 5 + 5 

所有此类均使用通常与.math相关的方法来实现接口。

前例:评估,分配,推导。由于层次结构树,该方法可以递归工作。

我还注意到这不是普通的规则二叉树。 (我说得对吗?)

一切顺利,直到我们不得不简化这些表达式为止。

x * 0 => 0的基本简化很简单。

但是我想简化关联性和分布性。

例如,给定的(2 * x + 4 * x)+ 5 + 2x将给我8x + 5。

所以我想知道如何解决这个问题。

0 个答案:

没有答案