Dieser Artikel teilt Ihnen hauptsächlich die in PHP implementierte Funktion für rote Umschläge mit, hauptsächlich in Form von Code. Da ich der Erste bin, der rote Umschläge schreibt, hoffe ich, dass er allen helfen kann.
for ($i=1; $i < $p; ++$i) { $s2 = ($sum - ($p - $i) * 0.01)/($p - $i); //echo $s2;die; $money = rand(1,$s2*100); $money = number_format($money/100,2,'.',','); $sum = $sum - $money; $wamp[$i] = $money; } //format_number(要转换的浮点数,要分隔的符号) echo "<hr/>"; echo "<pre class="brush:php;toolbar:false">"; print_r($wamp); echo "<pre class="brush:php;toolbar:false">"; } //echo 2;
Die Funktion des roten Umschlags kann grundsätzlich umgesetzt werden und die Hauptideen werden besprochen
Es gibt ein Szenario, in dem 50 Schüler einer Klassenkameradengruppe rote Umschläge verschicken möchten, um eine Party zu feiern
Zuerst wird jeder gefragt: Sie müssen einen roten Umschlag erhalten, und die Wahrscheinlichkeit, dass jeder einen roten Umschlag erhält, ist grundsätzlich gleich
Dann ist die Wahrscheinlichkeit, dass jeder einen roten Umschlag erhält = (The aktueller Betrag des roten Umschlags – (Die Anzahl der Personen, die derzeit keinen roten Umschlag erhalten haben) * Die Mindestanzahl der Personen, die einen roten Umschlag erhalten haben (Betrag) / Aktuelle Anzahl der Personen, die keinen roten Umschlag erhalten haben
$safe_total Wahrscheinlichkeit, dass jede Person einen roten Umschlag erhält $total Aktuelle Menge des roten Umschlags $min Mindestmenge des roten Umschlags, die eine Person erhält
Dann kann die Formel lauten: $safe_total = ($total - ( $num - $i) * $min) / ($num - $i);
Der Code ist nicht eindeutig. Das Wichtigste ist der Gedanke.
Das Folgende ist der Referenzcode
function getRedGift($total, $num = 10) { $min = 0.01; $wamp = array(); $returnData = array(); for ($i = 1; $i < $num; ++$i) { $safe_total = ($total - ($num - $i) * $min) / ($num - $i); //红包金额的最大值 为了是大部分个人获得的红包金额一定 if ($safe_total < 0) break; $money = @mt_rand($min * 100, $safe_total * 100) / 100;//随机产生一个红包金额 $total = $total - $money;//剩余红包总额 $wamp[$i] = round($money, 2);//保留两位有效数字 } $wamp[$i] = round($total, 2); $returnData['MoneySum'] = $wamp; $returnData['newTotal'] = array_sum($wamp); return $returnData; } //测试 $data = getRedGift(100, 10); echo "<pre class="brush:php;toolbar:false">"; print_r($data); echo "<pre class="brush:php;toolbar:false">";
Verwandte Empfehlungen:
PHP-Entwicklung der WeChat-Cash-Red-Envelope-Funktionscodefreigabe
PHP-Implementierung der Random-Red-Envelope-Funktion
PHP implementiert die Lucky-Red-Envelope-Funktion
Das obige ist der detaillierte Inhalt vonPHP implementiert den Red-Envelope-Funktionscode. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!