如何用C#解决这三个变量方程?

时间:2010-02-17 17:06:29

标签: c#

我的老师让我创建一个程序来解决类似的问题:

2x plus 7y plus 2z = 76  
6x plus 1y plus 4z = 26  
8x plus 2y plus 18z = 1  

x = ?  
y = ?  
z = ?

问题是,这实际上是课程的前两天,他希望我们能做出类似的事情。

任何帮助?

6 个答案:

答案 0 :(得分:8)

由于这是作业,我会提供指导,但不是完整的答案......

我的建议:把它写在纸上。你会如何在纸上接近这个?一旦找出所需的基本逻辑,将其转换为C#应该相当简单。

您需要为等式的每个部分分配一个变量(不仅仅是x / y / z,还有系数),只需使用您在纸上执行的相同步骤在代码中逐步执行该变量。

答案 1 :(得分:7)

如果你知道一些数学,你可以solve systems of equations使用matrix library(或自己动手)。

答案 2 :(得分:4)

我建议你在触摸任何C#之前用伪代码提出算法。

至少如果您已经定义了需要执行的步骤,那么该任务只是学习C#的语法来完成这些步骤。

看起来你需要一本数学教科书;)

答案 3 :(得分:3)

在纸上自己解决这个问题,但要记下你做了什么步骤,并尝试找出你正在使用的“算法”。

一旦你计算出你的算法,就去编写一些做同样事情的C#。

答案 4 :(得分:3)

可以帮助您的另一个建议是,您需要将等式存储在某些数据结构中,然后(重复)运行一些修改数据结构的步骤。问题是,哪种数据结构可以很好地代表这种数据?如果你只关注系数(因为每一行总是有相同的变量),你可以只写:

2  7  2  76   
6  1  4  26   
8  2  18  1   

此外,您可以假设所有操作都是+,因为“减7y”实际上意味着“加(-7)y”。这看起来像一个2D数组,因此在使用C#进行编程时,您可以将方程式表示为int[,]。将数据加载到此数据结构后,您只需编写一个方法来执行您在纸上执行的操作(通常)。

答案 5 :(得分:1)

获得矩阵(二维数组)表示的系数后,尝试使用Google搜索“RREF”(缩减行梯形表格)。这是您希望在程序中实现的矩阵运算,以便求解方程组。祝你好运。