私はアルゴリズムを見つけようとしていますが、私の正確な問題でグーグルが私に必要な正確な結果を見つけることができません。合計が目標値に近づくようにグループ化するアルゴリズム
数値とターゲットの合計が与えられました。私はそれらのグループの合計が目標値を超えないでできるだけ近くなるようにグループに数値を割り当てる必要があります。
Example Target Sum = 99
Example Set = { 70, 40, 10, 70, 98, 14, 4, 7, 29, 11, 91, 50, 30 }
何かのように目的の結果は次のようになります。彼らはすべて99
に近い数まで追加するので目標は、いくつかのグループとして持つことになります
{ 70, 29 }
{ 40, 50, 7}
{ 98 }
{ 91, 4 }
{ 70, 10, 11 }
{ 30, 14 }
...できるだけ。 私はリソースについてあまり心配する必要はありません。これは控えめに実行され、値の数はかなり少なくなります。
閉じるとはどういう意味ですか?グループとターゲットの差の合計を最小にするか、ターゲットから外れたグループの数を最小限にするか、または2つのバランスのバランスを取ってほしいですか? – Sorin
私は以前、[動的プログラミング](https://en.wikipedia.org/wiki/Dynamic_programming)を使用して、これまでに同様の問題を解決したことを覚えています。 – Hellium
最初のサンプルグループの合計は99(70 + 29)です。正確です。 2番目のグループの合計は97に近く、99に近いです...それは本当にどれくらい近いかは関係ありません。要点は、可能なグループの数を最小限に抑えることです。 –