【发布时间】:2017-06-28 08:09:39
【问题描述】:
我需要一种方法来找到满足具有两个未知数的方程的整数。约束是两个整数都在 1 到 10000 之间。例如:
value = 21
for x in range(1, 10001):
for y in range(1, 10001):
if (3 * x) + (5 * y) == value:
x_val = x
y_val = y
break
在这种情况下,我会得到x_val = 2 和y_val = 3。 如果没有整数解或多重解,那么输出应该是0
我想要一个快速方法来解决这个“方程”,而不是重复迭代。这在python中可能吗?谢谢。
【问题讨论】:
-
什么样的方程式?
-
@Blender 这是一个线性方程。
-
只有一个方程,如果不迭代就无法求解。
-
看看 scipy.linalg 包...它有一个求解器
-
Pyomo(或任何其他线性编程工具)会更容易