2

1000 のレシピを含む表があります。各レシピには、カロリー、タンパク質、炭水化物、脂肪の値が関連付けられています。

カロリー、タンパク質、炭水化物、脂肪の値の範囲を指定し、各順列でレシピの数を指定できる PHP のアルゴリズムを理解する必要があります。何かのようなもの:

getPermutations($recipes, $lowCal, $highCal, $lowProt, $highProt, $lowCarb, $highCarb, $lowFat, $highFat, $countRecipes)

最終的な目標は、ユーザーが 1 日のカロリー/タンパク質/炭水化物/脂肪の目標 (範囲として、たとえば 1500 ~ 1600 カロリー) と、食べたい食事の数 (レシピの数) を入力できるようにすることです。各セット)、目標に合ったさまざまな食事の組み合わせをすべて返します。

私は以前、可能なすべての組み合わせをテーブルに入力することでこれを試しました (参照: MySQL テーブルでレコードの組み合わせを作成する最良の方法 (順序は重要ではなく、繰り返しは許可されていません) を参照) および範囲制限でクエリを実行しましたが、それは証明されませんでした何十億ものレコードをスキャンすることになり、無期限に時間がかかるため、効率的です。

必要なものに近いいくつかの順列アルゴリズムを見つけましたが、探しているカロリー/タンパク質/炭水化物/脂肪の値の範囲を制限していません (参照:より大きな固定長の非反復順列を作成するこのタイプの論理/数学に関しては、この時点で途方に暮れているので、どんな助けも大歓迎です

4

1 に答える 1