[英]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.