方程式扩展

时间:2014-01-31 14:19:52

标签: regex perl math

我有一个要求,我要简化方程式。

我输入了,

a + b *((c+d)(e+f))+x

我要将公式简化为a + bce + bcf + bde + bdf + x

请注意,不会分配数值。我将简化字符串方程,并以完全如上所示的方程变量的形式得到结果。

目前,我制作了一种堆栈结构,我一直在推动每个角色,直到遇到“+”。一旦我这样做,我从底部到顶部转储所有变量并从堆栈中删除元素,直到我得到前一个开始括号(在堆栈上。我这样做,直到我得到一个结束括号,我删除所有内容,直到我得到一个在关闭之前打开支架。

然而,当我有类似(a+b)(e+f)之类的东西时会出现麻烦。我无法想出任何逻辑来做到这一点。另外,我对如何处理冗余括号感到无能为力,例如((a+b))

有人可以帮忙解决这个问题吗?

0 个答案:

没有答案