PHP实现微信红包金额拆分试玩的算法示例
发布:smiling 来源: PHP粉丝网 添加日期:2021-09-06 20:22:18 浏览: 评论:0
本篇文章主要介绍了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
Tags: PHP微信红包金额 PHP拆分
相关文章
- ·PHP切割整数工具类似微信红包金额分配的思路详解(2021-12-19)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)