PHP實(shí)現(xiàn)微信紅包金額拆分試玩的算法示例
本文介紹了PHP實(shí)現(xiàn)微信紅包金額拆分試玩的算法示例,分享給大家,有興趣的可以看一下:
<?php
// 新年紅包金額拆分試玩
class CBonus
{
public $bonus;//紅包
public $bonus_num;//紅包個(gè)數(shù)
public $bonus_money;//紅包總金額
public $money_single_max;//單個(gè)紅包限額
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);
}
//計(jì)算
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));//剩余金額不夠分時(shí),把剩余金額的一半作為備用金
}
$bonus_money_rad = $this->randomFloat(0.01, $money_single_max);//一個(gè)紅包隨機(jī)金額 最小的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;//分配剩余金額給最后一個(gè)紅包
}
//打印
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();
?>
演示結(jié)果:
紅包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
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
thinkPHP+phpexcel實(shí)現(xiàn)excel報(bào)表輸出功能示例
這篇文章主要介紹了thinkPHP+phpexcel實(shí)現(xiàn)excel報(bào)表輸出功能,結(jié)合具體實(shí)例形式分析了thinkPHP整合PHPExcel實(shí)現(xiàn)針對(duì)Excel文件相關(guān)操作技巧,需要的朋友可以參考下2017-06-06
php redis實(shí)現(xiàn)對(duì)200w用戶的即時(shí)推送
這篇文章主要為大家詳細(xì)介紹了php redis實(shí)現(xiàn)對(duì)200w用戶的即時(shí)推送,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03
laravel異步監(jiān)控定時(shí)調(diào)度器實(shí)例詳解
這篇文章主要給大家介紹了關(guān)于laravel異步監(jiān)控定時(shí)調(diào)度器的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用laravel具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06
PHP統(tǒng)計(jì)nginx訪問日志中的搜索引擎抓取404鏈接頁面路徑
這篇文章主要介紹了PHP統(tǒng)計(jì)nginx訪問日志中的搜索引擎抓取404鏈接頁面路徑,可以對(duì)每個(gè)搜索引擎單獨(dú)統(tǒng)計(jì),需要的朋友可以參考下2014-06-06
php從數(shù)據(jù)庫中讀取特定的行(實(shí)例)
下面小編就為大家?guī)硪黄猵hp從數(shù)據(jù)庫中讀取特定的行(實(shí)例)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-06-06
常見的5個(gè)PHP編碼小陋習(xí)以及優(yōu)化實(shí)例講解
這篇文章主要介紹了常見的5個(gè)PHP編碼小陋習(xí)實(shí)例講解,講解了常見寫法和優(yōu)化方法,看一下是否自己也是這樣寫的呢2021-02-02

