ランダムな赤い封筒を生成する必要があるため、配布する赤い封筒の量、最小値、最大値、数量を設定する必要があります。
for ループを使おうとしましたが、do while で行き詰まってしまったので、再帰を使用してループを書きました。正しい赤いエンベロープはメモリ内で生成できますが、再帰はできません。問題がどこにあるのかを見つけるのを手伝ってください。
リーリーランダムな赤い封筒を生成する必要があるため、配布する赤い封筒の金額、最小値、最大値、数量を設定する必要があります。
for ループを使おうとしましたが、do while で行き詰まってしまったので、再帰を使用してループを書きました。正しい赤いエンベロープはメモリ内で生成できますが、再帰はできません。問題がどこにあるのかを見つけるのを手伝ってください。
リーリー
あなたが与えてくれたものに従って変更しました:
リーリー再帰を使用しており、運に基づいてランダムであるため、スタック オーバーフローが発生しやすいことに注意してください。
データ luckymoney(80、1.3、2、50) をテストしましたが、5 回中 2 回は成功しました。アルゴリズムを変更することをお勧めします...
return hongbao($money, $min, $max, $num, $arr, 'no');
皆さん、ありがとうございます。アルゴリズムを改善するために for ループを再利用しました。
200元を送ることを基準に、最小1.3、最大3、赤い封筒200枚を送ることによって計算
for ループ アルゴリズムを使用すると、関数は 100 回実行され、平均実行時間は 0.004 秒です。
再帰アルゴリズムを使用すると、関数は 100 回実行され、平均実行時間は 0.211 秒です。
以下は for ループのコードです。もっと良いアイデアがあれば、ご指導ください。ありがとうございます。 リーリー