PHP を使用して赤い封筒の数と合計金額を入力すると、PHP はこれら 2 つの値に基づいて各金額をランダムに割り当てます。全員が確実に受け取れるようにするため、赤い封筒の場合、それぞれの赤い封筒の金額が異なります。つまり、赤い封筒の金額も異なる必要があり、すべての赤い封筒の合計金額は同じでなければなりません。合計金額。
デモを見る外出したい 外出する 外出する 外出する 外出する
へまず、ルールを分析させてください。
合計金額を10元に設定すると、N名がランダムに受け取ります:
最初は N=1
その後、赤い封筒の金額 = X 元になります。
N=2秒2 番目の赤い封筒を正常に発行できるようにするため、最初の赤い封筒の金額 = 0.01 ~ 9.99 の乱数になります。
2 番目の赤い封筒 = 10 - 最初の赤い封筒の金額
N=3/3
赤い封筒 1=0.01 から 9.99 までの乱数
赤い封筒 2=0.01 から (10-赤い封筒 1-0.01) までの乱数
赤い封筒 3=10-赤い封筒 1-赤い封筒 2
……
それで、現在の赤封筒の金額を割り当てるとき、最初に残りの赤と白に必要な最小金額を予約し、次に 0.01 から合計金額までの乱数を取得します。その乱数が取得されます。現在のレッドエンベロープの分配額。
実際のアプリケーションでは、プログラムは最初に赤い封筒の量を割り当てます。つまり、赤い封筒を送信するときに、赤い封筒の数と各赤い封筒の金額が割り当てられます。次に、ユーザーが赤い封筒を受け取りに来たときに、私たちは赤い封筒を受け取ります。ユーザーにランダムに赤い封筒を返すことができます。
赤い封筒配布コード: リーリー
上記のコードを実行すると、次の結果が出力されます:
最初の赤い封筒、金額は2.08元、残高は17.92元です2枚目の赤い封筒、金額は1.81元、残高は16.11元です
3枚目の赤い封筒、金額は0.15元、残高は15.96元です
4枚目の赤い封筒、金額は1.61元、残高は14.35元です
5枚目の赤い封筒、金額は1.11元、残高は13.24元です
6枚目の赤い封筒、金額は1.51元、残高は11.73元です
7枚目の赤い封筒、金額は1.21元、残高は10.52元です
8枚目の赤い封筒、金額2.58元、残高7.94元
9枚目の赤い封筒、金額は5.4元、残高は2.54元です
10枚目の赤い封筒、金額2.54元、残高0元