解析数学方程[关闭](Parsing math equations [closed])

2019-10-16 16:11发布

只是踢,我试图创建一个可以简化,因素,扩大代数方程组的应用程序。 编程规则好像这将是直线前进,如果我能得到的公式为好可行的格式。 解析方程被证明是一件麻烦事,目前使用Python,但我不反对不必学习新的东西。

是否有任何库(任何语言),这将使这个项目很简单,或者是一个白日梦?

[哈斯克尔标记,是因为我有一种感觉,这也正是“简单”是]

Answer 1:

是的,Haskell有许多许多库书写解析器相当容易。 秒差距是一个良好的开端,它甚至有其他语言的克隆 ,包括Python中 (该文章还链接到pyparsing它看起来像它也可能工作)。

我的这个答案就是一个例子(注意,这可能不是拔尖秒差距或哈斯克尔):这是指示Haskell的解析库的力量,正是4行代码实现整个分析器。

你也可以浏览过去的问题和答案,去感受各种库和技术,例如秒差距 , 解析+哈斯克尔和解析+蟒蛇 。

制定你的攻击对于较大的项目行的最好方法是开始小,只是尝试的东西,直到你满意你的工具:选择一个库,并试图实现一个相对简单的解析器,像只是数字解析表达式, +* ,甚至只是分析数字和+与包围...小东西(但也不能太小;每个这两个例子都非小事,第一个具有运算符优先级,第二个递归嵌套)。 如果你不喜欢图书馆了,尝试不同的库。



Answer 2:

它在几乎所有的语言已经完成。

Python有解析代数方程和符号数学都准备去图书馆:

http://code.google.com/p/sympy/

我建议再利用,除非你的目的是学习如何写这样的事情。



Answer 3:

Python或MATLAB将是我的建议。 你打算存储一个字符串整个方程式,然后把它分解后,与因子和简化?

给一些更多的信息,kindof一个很酷的项目。



Answer 4:

这是一个老问题,但我想建议你MathParseKit。

这是给定的一个字符串象C ++库“2 * 3/4”给你的函数/变量/常数定义的表达的树。

你可以解决它,但你甚至可以改变它,并把它再次在字符串格式。

你可以找到它:

https://github.com/B3rn475/MathParseKit



文章来源: Parsing math equations [closed]