問題タブ [partition-problem]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
419 参照

php - 組み合わせを 3 つのカテゴリから分割する方法は?

私は、朝食、昼食、夕食の 3 つのカテゴリからのレシピの配列を持っています。これらの各カテゴリには、10 個のユニークなレシピがあります。

毎日3種類のレシピを並べ替えて組み合わせを作りたい

各レシピにはカロリー量があり、各最終日には、500 に最も近い 3 つのレシピの組み合わせで注文されたレシピとの組み合わせ (朝食 1 回、昼食 1 回、夕食 1 回からなる) が必要です。

たとえば、1 日目の組み合わせのレシピ (朝食、昼食、夕食) のカロリーの合計が 660 で、2 日目が 400 だった場合、朝食を 2 日目から 1 日目に切り替えると、両方が 500 に最も近くなる可能性がありますが、それは可能です。 3 日目の朝食を 1 日目に、2 日目を 3 日目に切り替えると、3 つすべてのヒットが 500 に近づく可能性があります。

したがって、1 日目、2 日目、3 日目、4 日目、5 日目、6 日目、7 日目には 3 つのレシピ (朝食、昼食、夕食) が必要です。

行き詰まりになってから数日が経ちましたが、これらの配列を毎日 3 つの組み合わせに並べ替える方法がわかりません。(私はオフにするための多くのコードを提供していないことを知っています)

編集1:これは私がこれまでに得たものです:

編集2:

この問題を解決するのに最適なアルゴリズムを見つけようとしています。二部一致(最大)アルゴリズムを使用することが必要だと思います。

編集3:

時間を割いていただきありがとうございます。答えを忘れていません。とりあえずこれは脇に置いておかなければなりませんでしたが、すぐに取り掛かることができ、受け入れられた回答が残りの 300 の報奨金を獲得します。