温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

PHP中如何实现微信红包金额拆分试玩的算法

发布时间:2021-06-03 11:18:20 来源:亿速云 阅读:249 作者:小新 栏目:开发技术

小编给大家分享一下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中如何实现微信红包金额拆分试玩的算法”有了一定的了解,如果想了解更多相关知识,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

php
AI