まずルールを分析しましょう。 合計金額を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元 原文 http://www.helloweba.com/view-blog-313.html |
赤い封筒を送る、PHP