简化和评估数学字符串 [英] Simplifying and evaluating mathematical strings

查看:122
本文介绍了简化和评估数学字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

What would be the simplest way to evaluate/simplify a mathematical string in VB?

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

For example: "k*k+(5+2*5)k+k" would simplify to "k^2+15k+k" and "5^2+3" would evaluate to 28.

要求值,我只是通过使用评价函数来使用 NCalc ,但是它不能简化表达式. 简化方程式的最简单方法是什么?

To evaluate, I'm using NCalc by simply using the evaluate function, but it doesn't simplify expressions. What would be the simplest way of simplifying the equations?

推荐答案

您可以尝试 Math.NET符号.

它不知道"(a)b的隐式乘法,因此,如果不需要,您必须弄清楚如何插入*.

It doesn't "know" about the implied multiplication for (a)b, so you would have to work out how to insert an * if you can't require it.

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

16*k + k^2
28

这篇关于简化和评估数学字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆