2012-04-06 22 views
0

可能重复:
automatically calculate string mathematical expressing in C#算法/操作方法简单代数简化

有人能指出我对一些资源,详细描述了如何简化简单的代数方程组,如“ 5X +(2×* 6×)2" ,其应导致 “12X^2 + 5X + 2” 我需要处理运算符 “+”, “ - ”, “*”, “/”, “^” 和括号。到目前为止,我已经实现了数字方面解析器和评估其从修复到修复后转换和再评估。

如果有人可以给我我怎么能做到这一点,将不胜感激一个基本的破败。

+0

不知道我有问题的权利,看看[波兰语](http://en.wikipedia.org/wiki/Polish_notation) – sll 2012-04-06 13:05:58

+0

为什么你想简化它? – 2012-04-06 13:56:26

回答

1

如果你已经有内部树表示方程,你可以递归访问每个节点,以找出是否有两个子节点的条款相结合的方式。想想你会在每个节点上做什么,然后考虑边界条件(节点为空,节点没有子节点等)。

这里是我会怎么来解决:每个孩子

  1. 访问反过来
  2. 有一个功能,会发现在孩子相同的变量共同权力和将它们结合起来 一个。考虑多变量方程 b。记住你的输出格式与工作拷贝格式。您需要将最终结果转换回文本。

这是一个开始。我认为