Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#解最简单的方程_C#_Solver - Fatal编程技术网

C#解最简单的方程

C#解最简单的方程,c#,solver,C#,Solver,在C#中,我正在寻找一种方法来解决像这样的简单方程Z=A+B 我正在尝试构建一个类,如果我给出其他两个参数中的任何一个,它会给我第三个参数 例如,给定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不会做你需要的事情吗?请看一个来自的示例 定义参数,甚至是动态或

在C#中,我正在寻找一种方法来解决像这样的简单方程<代码>Z=A+B

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

例如,给定
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不会做你需要的事情吗?请看一个来自的示例

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

请注意,这是未经测试的-但看起来您可以使用NCalc执行类似操作:

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

尝试一下,看看它是否符合您的要求。

仅链接?你有用法的例子吗?我没有用过。它的文档表明,C#expression evaluator提供基本的算术运算。ExpressionEvaluator只将C#(代码)表达式编译成可以使用不同输入重复调用的.NET函数。我认为OP需要一个表达式解算器,比如。我是ExpressionEvaluator的作者,似乎我从这个页面获得了一些流量。这不是正确的答案,你甚至没有花时间亲自阅读链接进行检查,更不用说粘贴一个有用的片段了。@user814064问题表明研究已经完成并实际审查了-对所提供的某些信息的功能似乎存在误解(NCalc似乎满足OP的要求)-关于工具的sureQuestion的第n个NullPointerException问题是一个更好的问题。它基本上可以归结为“如何解析/计算带有变量的表达式?”OP展示了研究成果,它很明显属于“特定编程问题”的范畴,非常感谢jdphenix没有回答我的问题。下面还有一些有趣的评论/答案可以帮助我找到解决方案!顺致敬意,要根据自己的需求完成所需的工作,您基本上是在寻找或实现具有所需功能的计算机代数系统。这将出现在“我只能为二次方程、方程组或更复杂的方程组找到复杂的解算器…”类别中,以获取有关NCalc的答案。事实上,这不是我想要的,或者我不知道如何使用它。我希望我的表达式是“A+B=10”,参数[A]=3。然后,计算器应返回B=7。(不,我不能将方程转化为计算10-A,参数[A]=3),因为提供的参数可以是A或B。如果您有调整Ncalc的想法,请多谢。
var e = new Expression("[A] + [B]"); 
e.Parameters = /* your input */ 
var result = e.Evaluate();