简化和评估数学字符串

Simplifying and evaluating mathematical strings

evaluate/simplify VB 中的数学字符串的最简单方法是什么?

例如:"k*k+(5+2*5)k+k" 将简化为 "k^2+15k+k",而 "5^2+3" 将计算为 28

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

你可以试试Math.NET Symbolics

它没有 "know" 关于 (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