複数のオプションが与えられた場合、総評価が最大になるようにそれらの n 個を選択する必要がありますが、総コストは予算を超えません。
var options = [
{ rating: 8, cost: 6, },
{ rating: 5, cost: 4, },
//...100 of these in total
];
function select(n, budget) {
//TODO: Replace this code with some real implementation
return options.slice(0, 5);
}
//Sudocode:
var result = select(5, 25);
Assert(result.length == 5);
Assert(sum(result.cost) <= 25);
Assert(sum(result.rating) is maximized);
いくつかの異なるオプション、ループ内のループのすべてのバリエーションを試しました。しかしもちろん、パフォーマンスが非常に遅いか、まったく戻ってこない.
ループだけではうまくいかず、この問題には根本的に異なるアプローチが必要だと思います。