用于计算具有两个变量的单个简单方程的解集的算法
假设我有一个简单的等式:
7x + 4y = n
其中 n 由我们选择,x、y 和 n 都是正整数。这是给我们的唯一等式。在可能的解决方案中,我们需要x最小的解决方案(x,y)。例如:
7x + 4y = 14, then (2, 0) is the solution
7x + 4y = 15, then (1, 2) is the solution
7x + 4y = 32, then (4, 1) and (0, 8) are the possible solutions,
of which (0, 8) is the correct solution
我想设计一种算法,以便在尽可能短的运行时间内计算它。我脑海中的当前算法是这样的:
Given an input n
Calculate max(x) = n/7
for i = 0 to max(x)
If the equation 7*i + 4*y = n holds
return value of i and y
else
continue
我推测,在最坏的情况下,这个算法的运行时间可以达到O(n)。有没有更好的算法来计算解决方案?