0

在VB中评估/简化数学字符串的最简单方法是什么?

例如:"k*k+(5+2*5)k+k"将简化为"k^2+15k+k"并将"5^2+3"评估为28

为了评估,我通过简单地使用评估函数来使用NCalc,但它不会简化表达式。简化方程的最简单方法是什么?

4

1 回答 1

1

您可以尝试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

于 2019-12-22T13:37:41.250 回答