4 つの制約を持つナップザックのロジックを理解しようとしています。食事で消費したいカロリー、脂肪、炭水化物、およびタンパク質を入力するプログラムを作成したいと思います。入力基準を満たす最も近い食品の組み合わせについて、可能な食品のリストを調べます。
例
私はこれらのアイテムを持っています
- 4オンスの牛肉(231カロリー、脂肪15g、炭水化物0g、タンパク質22g)
- オートミール 1/2 カップ (260 カロリー、脂肪 2 g、炭水化物 58 g、タンパク質 10 g)
- 黒豆 1/2 カップ (120 カロリー、脂肪 0.5g、炭水化物 23g、タンパク質 7g)
- バナナ 1 本 (105 カロリー、脂肪 0g、炭水化物 27g、タンパク質 1g)
- カッテージチーズ 1/2カップ(110カロリー、脂肪5g、炭水化物6g、タンパク質11g)
- 全粒粉パスタ 1/2 カップ (200 カロリー、脂肪 1 g、炭水化物 40 g、タンパク質 8 g)
私の目標は、745 カロリー、<= 20g の脂肪、<=80g の炭水化物、>= 40g のタンパク質を消費することです。
ナップザック問題の実装はたくさん見てきましたが、4 つの制約がある実装は見たことがありません。私の質問は、それが実行可能かどうかです。私のプログラムに適したアルゴリズムを教えてもらえますか? ありがとうございました。