Heim > Backend-Entwicklung > PHP-Tutorial > PHP implementiert den Red-Envelope-Funktionscode

PHP implementiert den Red-Envelope-Funktionscode

小云云
Freigeben: 2023-03-21 09:16:01
Original
2670 Leute haben es durchsucht

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,&#39;.&#39;,&#39;,&#39;); 
	$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;
Nach dem Login kopieren

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[&#39;MoneySum&#39;] = $wamp;
$returnData[&#39;newTotal&#39;] = 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">";
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage