简单代数简化的算法/操作方法

时间:2012-04-06 13:02:06

标签: .net algorithm algebra simplification postfix-notation

  

可能重复:
  automatically calculate string mathematical expressing in C#

有人能指出一些资源,详细描述如何简化简单的代数方程,如“5x +(2x * 6x)+2”,这应该导致“12x ^ 2 + 5x + 2”我需要的运算符句柄是“+”,“ - ”,“*”,“/”,“^”和括号。到目前为止,我已经为数字术语实现了一个解析器和赋值器,它从in-fix转换为post-fix然后进行求值。

如果有人能给我一个基本的破坏方法,我将非常感激。

1 个答案:

答案 0 :(得分:1)

如果你已经在内部有一个表示等式的树,你可以递归地访问每个节点,以确定是否有办法组合两个子节点的术语。想想你将在每个节点做什么,然后考虑边界条件(节点为空,节点没有子节点等)。

以下是我将如何处理它:

  1. 轮流拜访每个孩子
  2. 有一个函数可以找到子节点中相同变量的共同幂并组合它们 一个。考虑多变量方程 湾记住输出格式与工作副本格式。您需要将最终结果转换回文本。
  3. 这是一个开始。我想