您好,登錄后才能下訂單哦!
小編給大家分享一下PHP中如何實現微信紅包金額拆分試玩的算法,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
本文介紹了PHP實現微信紅包金額拆分試玩的算法示例,分享給大家,有興趣的可以看一下:
<?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(); ?>
演示結果:
紅包1=12.36
紅包2=24.37
紅包3=42.71
紅包4=36.92
紅包5=25.84
紅包6=23.17
紅包7=15.92
紅包8=1.35
紅包9=7.75
紅包10=9.61
紅包總金額:200
紅包1=24.59
紅包2=17.66
紅包3=29.67
紅包4=32.34
紅包5=12.67
紅包6=37.15
紅包7=17.41
紅包8=15.23
紅包9=6.13
紅包10=7.15
紅包總金額:200
看完了這篇文章,相信你對“PHP中如何實現微信紅包金額拆分試玩的算法”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。