在VB中评估/简化数学字符串的最简单方法是什么?
例如:"k*k+(5+2*5)k+k"
将简化为"k^2+15k+k"
并将"5^2+3"
评估为28
。
为了评估,我通过简单地使用评估函数来使用NCalc,但它不会简化表达式。简化方程的最简单方法是什么?
您可以尝试Math.NET Symbolics。
它不“知道” (a)b 的隐含乘法,所以*
如果你不需要它,你必须弄清楚如何插入一个。
Imports MathNet.Symbolics
Imports Expr = MathNet.Symbolics.SymbolicExpression
Module Module1
Sub Main()
Dim a = Expr.Parse("k*k+(5+2*5)*k+k")
Console.WriteLine(a.ToString())
Console.WriteLine(Expr.Parse("5^2+3"))
Console.ReadLine()
End Sub
End Module
输出:
16*k + k^2
28