C#求解最简单的方程

在C#中,我正在寻找一种方法来解决这样的简单方程式。 Z = A + B

我正在尝试构建一个类,如果我给出其他2个中的任何一个,它将给我第三个参数。

例如,给定Z=A+B

如果您知道A=3B=6那么您就知道Z=9

如果您知道A=4Z=8那么您就知道B=4

我如何才能最好地在软件中执行这些任务?

另一个想法是使用数学表达式求值,如ncalc。 他们可以解释数学表达式,例如将3*(8+2)转换为30 ,但不能解决像3*(8+x)=30 – > x=2这样的方程式。

你确定NCalc不会做你需要的吗? 看看http://ncalc.codeplex.com/上的一个例子。

定义参数,甚至是动态或表达式

 Expression e = new Expression("Round(Pow([Pi], 2) + Pow([Pi2], 2) + [X], 2)"); e.Parameters["Pi2"] = new Expression("Pi * [Pi]"); e.Parameters["X"] = 10; e.EvaluateParameter += delegate(string name, ParameterArgs args) { if (name == "Pi") args.Result = 3.14; }; Debug.Assert(117.07 == e.Evaluate()); 

请注意这是未经测试的 – 但看起来你可以用NCalc做这样的事情:

 var e = new Expression("[A] + [B]"); e.Parameters = /* your input */ var result = e.Evaluate(); 

试用C#Expression Evaluator ,看看它是否符合您的要求。