次の形式の簡単な方程式があるとします。
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)の実行時間を有する可能性があると私は推測します。解を計算するためのより良いアルゴリズムはありますか?