PHPは微信発紅包プログラムを実現する

1218 ワード

PHPを使ってお年玉を出して、私达がお年玉の数量と総金额を入力する时、PHPはこの2つの値によってランダムに各金额を分配して、すべての人がすべて1つのお年玉を受け取ることができることを保证して、各お年玉の金额は等しくなくて、お年玉の金额に差があることを要求して、すべてのお年玉の総额は総金额に等しいはずです.
ダウンロードソースの表示
まず法則を分析します.
総金額を10元に設定し、N人がランダムに受け取る.
N=1先頭
お年玉の金額=X元です.
N=2 2 2番目
2番目のお年玉が正常に発行されることを保証するために、1番目のお年玉の金額=0.01から9.99の間のランダムな数です.
2番目のお年玉=10-最初のお年玉の金額;
N=3番目
お年玉1=0.01~9.99のランダム数
お年玉2=0.01から(10-お年玉1-0.01)までのランダム数
お年玉3=10-お年玉1-お年玉2
……
そこで、現在のお年玉の金額を割り当てるときに、残りの紅白に必要な最低限の金額を予約し、0.01から総金額-予約金額の間で乱数を取り、得られた乱数が現在のお年玉の金額であるという法則を得た.
実際の応用の中で、プログラムはまずお年玉の金額を分配して、つまりお年玉を出す時、お年玉の個数と各お年玉の金額はすべて分配して、それではユーザーがお年玉を奪い取りに来た時、私達はランダムにユーザーに1つのお年玉を返します.
お年玉配分コード:

$total=20;//      
$num=10;//   10   ,  10      
$min=0.01;//        0.01  
for ($i=1;$i 
 

上記のコードを実行すると、次の結果が出力されます.
第1個のお年玉、金額の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元
以上phpを使って微信の赤いパッケージを実現して、みんなに役に立つことを望んで、ソースコードが必要な友达があって、直接ダウンロードすることができます.