Cet article partage principalement avec vous la fonction enveloppe rouge implémentée en php, principalement sous forme de code Comme je suis le premier à écrire des enveloppes rouges et que je ne connais pas grand chose aux enveloppes rouges, j'espère que cela pourra aider tout le monde.
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;
La fonction enveloppe rouge peut être essentiellement réalisée et les idées principales sont discutées
Il existe un scénario dans lequel 50 étudiants d'un groupe de camarades de classe veulent envoyer des enveloppes rouges pour célébrer une fête
Tout d'abord, on demande à tout le monde Vous devez recevoir une enveloppe rouge, et la probabilité que tout le monde reçoive une enveloppe rouge est fondamentalement la même
Ensuite, la probabilité que tout le monde reçoive une enveloppe rouge = (Le montant actuel de l'enveloppe rouge - (Le nombre de personnes n'ayant pas reçu d'enveloppe rouge actuellement) * Le nombre minimum de personnes ayant reçu une enveloppe rouge Montant) / Nombre actuel de personnes n'ayant pas reçu d'enveloppe rouge
$safe_total Probabilité que chaque personne reçoive une enveloppe rouge $total Montant actuel de l'enveloppe rouge $min Montant minimum de l'enveloppe rouge reçue par une personne
Alors la formule peut être $ safe_total = ($total - ( $num - $i) * $min) / ($num - $i);
Le code n'est pas unique. L'important est la pensée
Ce qui suit est le code de référence.
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">";
Recommandations associées :
Développement PHP du partage de code de la fonction d'enveloppe rouge WeChat Cash
Implémentation de la fonction d'enveloppe rouge aléatoire PHP
php implémente la fonction d'enveloppe rouge porte-bonheur
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!