如何创建一个函数来解决两个未知数

时间:2011-09-17 12:53:21

标签: c# math

试图弄清楚从哪里开始。该等式包含两个未知数,x或y的解是总是一个正数。

鉴于a = 123b = 55以及c = 5.在这种情况下x = 31y = 93,但我不知道提前,我正在尝试用C#写一个函数来解决它。

a - (x + 1) * 96 - (y + 2) + 3104 - c = b

此外,如果a = 30b = 8以及c = 19,那么x = 32y = 35

所以:   第1轮       function solveX(123,55,5)返回31       函数solveY(123,55,5)返回93

第二轮       function solveX(30,8,19)返回32       函数solveY(30,8,19)返回35

关于从哪里开始的任何指示都会很棒。

感谢。

1 个答案:

答案 0 :(得分:9)

这是线性丢番图方程。它的解决方案非常有名。它可以用ex + fy = d形式重写。查找g = gcd(e, f)。如果d = g那么存在无限多个积分解,并且可以使用extended Euclidean algorithm找到这些解。因此,如果d仅仅是g的倍数,那么也有无限多的解决方案。如果d不是g的倍数,则没有解决方案。