合計が特定の範囲内になるように、整数のセットからサブセットを見つけるアルゴリズム (特定の言語ではない) が必要です。
たとえば、重みが次のような人々のグループがあるとします。
var people:{
jane:126,
julia:112,
charles:98,
john:182,
bob:213,
edgar: 237,
jay: 223,
dan: 191,
alex: 210,
david: 196
}
さて、これらの人々の中から、合計重量が 818 ~ 822 ポンドのサブセットを見つけたいと思います (計算をしようとしているのであれば...気にしないでください。これらの数字は私の頭から離れています。このデータセットで解決策があるかどうかさえわかりません)。グループ内の人数は問題ではなく、より大きなセットからのグループです。実際、どのグループでも構いません (ただし、私の場合はランダムの方が優れています)。
これは簡単な例であることに注意してください...実際には何百人もの人々が存在し、この基準に適合する組み合わせが存在しない可能性があります. 実際の数値はこれよりもはるかに大きいため、非常に迅速に実行する必要があるにもかかわらず、^n 問題が発生し、何千回も繰り返し実行されることを懸念しています。
その日、コンピューター サイエンスの授業中に居眠りをしたのかもしれませんが、力ずくの方法以外は思いつきませんでした。
これを javascript としてタグ付けしましたが、これは実際の実装に最も近い (そして読みやすい) からです。どこかのクトゥルフ機能に基づいていない限り、他のソリューションを受け入れます。
SOでこれを尋ねるのは奇妙な質問だと思いますが、ここで何か助けていただければ幸いです。
わかりました、私は困惑しています。コードに関して理解できる何かの報奨金を投稿するのに23時間-私のバックグラウンドは確かにこの領域にありません。解決策は言うまでもなく、問題を説明するために使用される表記法を識別することさえ困難です。
誰かが私を助けて、最終的なプロジェクトに変更できるサンプル JavaScript コードを投げてくれませんか? できれば 250pt の報奨金を追加します...しかし、適切な解決策が得られた場合は、その時が来たらそれを配布します.