ホームページ  >  記事  >  バックエンド開発  >  PHPは赤い封筒送信プログラムを実装します

PHPは赤い封筒送信プログラムを実装します

WBOY
WBOYオリジナル
2016-07-23 08:54:53833ブラウズ
赤い封筒を送る、PHP

まずルールを分析しましょう。

合計金額を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 から合計金額までの乱数を取得します。その予約金額は次のとおりです。現在のレッドエンベロープの分配額。

実際のアプリケーションでは、プログラムは最初に赤い封筒の数量を割り当てます。つまり、赤い封筒を発行するときに、赤い封筒の数と各赤い封筒の金額が割り当てられます。次に、ユーザーが赤い封筒を取りに来たときに、私たちは赤い封筒を受け取ります。ユーザーにランダムに赤い封筒を返すことができます。

赤い封筒配布コード:

    $total=20;//赤い封筒の総量
  1. $num=10;//10枚の赤い封筒に分かれており、ランダムで10名に受け取ることができます
  2. $min=0.01; //1人当たりの最低受取金額 0.01元
  3. for ($i=1;$i<$num;$i++)
  4. {
  5. $safe_total=($total-($num-$i)*$min)/ ($num-$i) ;//ランダムな安全上限
  6. $money=mt_rand($min*100,$safe_total*100)/100;
  7. $total=$total-$money; i.' 番目の赤い封筒:'.$money.' 残高: '.$total.'
  8. }
  9. ' 番目の赤い封筒: '.$total.' : 0 元'
  10. コードをコピー
上記のコードを実行すると、次の結果が出力されます:

最初の赤い封筒、金額は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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。