Heim > Artikel > Backend-Entwicklung > Informationen zum Algorithmus zum Aufteilen des Betrags des roten WeChat-Umschlags mithilfe von PHP
In diesem Artikel wird hauptsächlich das Algorithmusbeispiel für die Implementierung des WeChat-Tests zur Aufteilung des roten Umschlags vorgestellt. Ich werde ihn jetzt als Referenz verwenden.
In diesem Artikel wird ein Beispiel für den Algorithmus zum Aufteilen des roten WeChat-Umschlagsbetrags in PHP vorgestellt. Wenn Sie interessiert sind, können Sie einen Blick darauf werfen:
<?php // 新年红包金额拆分试玩 class CBonus { public $bonus;//红包 public $bonus_num;//红包个数 public $bonus_money;//红包总金额 public $money_single_max;//单个红包限额 public function __construct(){ $this->bonus_num = 10; $this->bonus_money = 200; $this->money_single_max = 60; } private function randomFloat($min = 0, $max = 1) { $mt_rand = mt_rand(); $mt_getrandmax = mt_getrandmax(); echo 'mt_rand=' . $mt_rand . ', mt_getrandmax=' . $mt_getrandmax . '<hr/>'; return $min + $mt_rand / $mt_getrandmax * ($max - $min); } //计算 public function compute() { $this->bonus = array(); $bonus_money_temp = $this->bonus_money; $money_single_max = $this->money_single_max; $i = 1; while($i < $this->bonus_num) { if ($money_single_max > $bonus_money_temp) { $money_single_max = floatval(sprintf("%01.2f", $bonus_money_temp / 2));//剩余金额不够分时,把剩余金额的一半作为备用金 } $bonus_money_rad = $this->randomFloat(0.01, $money_single_max);//一个红包随机金额 最小的1分钱 $bonus_money_rad = floatval(sprintf("%01.2f", $bonus_money_rad)); $bonus_money_temp = $bonus_money_temp - $bonus_money_rad ;//待分配的总剩余金额 $bonus_money_temp = floatval(sprintf("%01.2f", $bonus_money_temp)); $this->bonus[] = $bonus_money_rad; //echo $bonus_money_rad . ',' . $bonus_money_temp . '<hr/>'; $i++; } $this->bonus[] = $bonus_money_temp;//分配剩余金额给最后一个红包 } //打印 public function output(){ $total = 0; foreach($this->bonus as $k => $v) { echo '红包' . ($k+1) . '=' . $v . '<br/>'; $total += $v; } echo '红包总金额:'.$total; } } $CBonus = new CBonus(); $CBonus->compute(); $CBonus->output(); ?>
Demo-Ergebnisse:
Rotes Paket 1=12,36
Rotes Paket 2=24,37
Rotes Paket 3 =42,71
Rotes Paket 4=36,92
Rotes Paket 5 =25,84
Roter Umschlag 6=23,17
Roter Umschlag 7=15,92
Roter Umschlag 8=1,35
Roter Umschlag 9=7,75
Roter Umschlag 10=9,61
Gesamtmenge des roten Umschlags: 200
Roter Umschlag 1=24,59
Roter Umschlag 2=17,66
Roter Umschlag 3=29,67
Roter Umschlag 4=32,34
Roter Umschlag 5=12,67
Roter Umschlag 6=37,15
Roter Umschlag 7=17,41
Roter Umschlag 8=15,23
Roter Umschlag 9=6,13
Roter Umschlag 10= 7,15
Gesamtbetrag des roten Umschlags: 200
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein. Weitere Informationen finden Sie auf der chinesischen PHP-Website Inhalt!
Verwandte Empfehlungen:
So verwenden Sie PHP, um die Funktion für schnelle Geldzahlungen zu implementieren
Das obige ist der detaillierte Inhalt vonInformationen zum Algorithmus zum Aufteilen des Betrags des roten WeChat-Umschlags mithilfe von PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!