[英]C# solve simplest equations
在C#中,我正在寻找一种解决此类简单方程的方法。 Z = A + B
我正在尝试构建一个类,如果我给出其他2个参数中的任何一个,它将给我第3个参数。
示例,给定Z=A+B
如果您知道A=3
和B=6
那么您知道Z=9
如果您知道A=4
和Z=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 ,看看它是否符合您的要求。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.