簡體   English   中英

C#解決最簡單的方程式

[英]C# solve simplest equations

在C#中,我正在尋找一種解決此類簡單方程的方法。 Z = A + B

我正在嘗試構建一個類,如果我給出其他2個參數中的任何一個,它將給我第3個參數。

示例,給定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 ,看看它是否符合您的要求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM