我的老师让我创建一个程序来解决类似的问题:
2x plus 7y plus 2z = 76
6x plus 1y plus 4z = 26
8x plus 2y plus 18z = 1
x = ?
y = ?
z = ?
问题是,这实际上是课程的前两天,他希望我们能做出类似的事情。
任何帮助?
答案 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”(缩减行梯形表格)。这是您希望在程序中实现的矩阵运算,以便求解方程组。祝你好运。