具有变量的分流场算法

时间:2014-08-15 02:38:29

标签: math shunting-yard rewriting

我目前正在研究可以使用变量的Shunting Yard算法的修改版本,但我无法弄清楚如何让它工作。例如,我希望算法重写2 *(2x + 5) - 5到4x + 5.已经实现的算法的任何想法/链接已经这样做了吗?

1 个答案:

答案 0 :(得分:4)

  1. 取表达式:2 * (2x + 5) - 5
  2. 添加*符号,使计算机更易于理解:2 * (2*x + 5) - 5
  3. 使用Shunting Yard算法解析它,它变为:2 2 x * 5 + * 5 -(每个字符都可以看作是数组的元素)。
  4. 使用解析的表达式,创建二叉树:
  5. - / \ * 5 / \ 2 + / \ * 5 / \ 2 x 5.定义代数规则并将其应用于树。例如,一个能够“乘以”的规则。带有2子树的2 * x + 5节点。