600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > php 微信红包瓜分 PHP实现微信红包金额拆分试玩的算法示例

php 微信红包瓜分 PHP实现微信红包金额拆分试玩的算法示例

时间:2023-08-26 07:01:39

相关推荐

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 . '

';

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 . '

';

$i++;

}

$this->bonus[] = $bonus_money_temp;//分配剩余金额给最后一个红包

}

//打印

public function output(){

$total = 0;

foreach($this->bonus as $k => $v)

{

echo '红包' . ($k+1) . '=' . $v . '

';

$total += $v;

}

echo '红包总金额:'.$total;

}

}

$CBonus = new CBonus();

$CBonus->compute();

$CBonus->output();

?>

演示结果:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。