少し問題があります。次のように、合計すると X になる合計のセットがあります。
A: i + j + k = X
B: t + z = X
C: z + z = X
D: j + j + k + k = X
これらの合計は多かれ少なかれ、ここでは 4 としますが、N 個になる可能性があります。
私は限られた数の被加数を持っているので、例えば
i の 12 個、z の 35 個、j の 12 個、k の 18 個、t の 21 個
私が必要としているのは、これらの組み合わせを使用する最善の方法を決定し、最終的に X の最も完全な合計になるアルゴリズムです。
上記の例では、次を使用しています。
組み合わせ C の 17 個、組み合わせ B の 1 個、組み合わせ A の 12 個、合計 30 個の X の和、72 個の加数を使用
以下を使用するよりも悪い:
組み合わせ B が 21 個、組み合わせ C が 7 個、組み合わせ D が 6 個、合計 34 個の X の和、使用される加数は 80 個
編集:
さらに説明するには
組み合わせ B の 21 を使用すると、21 t と 21 z が「費やされ」、i の 12、z の 14、j の 12、k の 18、t の 0 が残ります。
組み合わせ C の 7 を使用すると、z の 14 が「消費」されます (達成される z の 2 つの被加数を使用するため)。
組み合わせ D の 6 を使用すると、j の 12 と k の 12 が消費されます (両方を 2 回使用するため): i の 12、z の 0、j の 0、k の 6、t の 0
合計が X になる組み合わせを作成することはできなくなり、アルゴリズムは終了します。