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


Posted in PHP onApril 07, 2018

本文介绍了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 相关文章推荐
php xfocus防注入资料
Apr 27 PHP
PHP生成HTML静态页面实例代码
Aug 31 PHP
php 远程图片保存到本地的函数类
Dec 08 PHP
php 随机生成10位字符代码
Mar 26 PHP
php jquery 实现新闻标签分类与无刷新分页
Dec 18 PHP
基于Zend的Captcha机制的应用
May 02 PHP
php取整函数ceil,floo,round的用法及介绍
Aug 31 PHP
PHP循环输出指定目录下的所有文件和文件夹路径例子(简单实用)
May 10 PHP
thinkPHP数据查询常用方法总结【select,find,getField,query】
Mar 15 PHP
Laravel框架实现的记录SQL日志功能示例
Jun 19 PHP
关于php unset对json_encode的影响详解
Nov 14 PHP
PHP大文件分块上传功能实例详解
Jul 22 PHP
PHP面向对象五大原则之接口隔离原则(ISP)详解
Apr 04 #PHP
PHP面向对象五大原则之开放-封闭原则(OCP)详解
Apr 04 #PHP
PHP面向对象五大原则之单一职责原则(SRP)详解
Apr 04 #PHP
PHP基于面向对象实现的留言本功能实例
Apr 04 #PHP
PHP设计模式之工厂模式定义与用法详解
Apr 03 #PHP
PHP设计模式之原型模式定义与用法详解
Apr 03 #PHP
thinkPHP框架自动填充原理与用法分析
Apr 03 #PHP
You might like
input file获得文件根目录简单实现
2013/04/26 PHP
php导入导出excel实例
2013/10/25 PHP
PHP对称加密算法(DES/AES)类的实现代码
2017/11/14 PHP
jquery自定义下拉列表示例
2014/04/25 Javascript
微信分享的标题、缩略图、连接及描述设置方法
2014/10/14 Javascript
什么是 AngularJS?AngularJS简介
2014/12/06 Javascript
jquery实现select选择框内容左右移动代码分享
2015/11/21 Javascript
正则表达式优化JSON字符串的技巧
2015/12/24 Javascript
JavaScript中Window对象的属性及事件
2015/12/25 Javascript
jQuery实现的表格展开伸缩效果实例
2016/09/07 Javascript
无阻塞加载js,防止因js加载不了影响页面显示的问题
2016/12/18 Javascript
js实现打地鼠小游戏
2017/02/13 Javascript
微信小程序 中wx.chooseAddress(OBJECT)实例详解
2017/03/31 Javascript
vue 怎么创建组件及组件使用方法
2017/07/27 Javascript
微信小程序模拟cookie的实现
2018/06/20 Javascript
微信小程序网络封装(简单高效)
2018/08/06 Javascript
vue根据进入的路由进行原路返回的方法
2018/09/26 Javascript
nodejs实现获取本地文件夹下图片信息功能示例
2019/06/22 NodeJs
jQuery实现聊天对话框
2020/02/08 jQuery
jquery向后台提交数组的代码分析
2020/02/20 jQuery
Vue中的nextTick作用和几个简单的使用场景
2021/01/25 Vue.js
使用Python进行稳定可靠的文件操作详解
2013/12/31 Python
pycharm运行和调试不显示结果的解决方法
2018/11/30 Python
python 导入数据及作图的实现
2019/12/03 Python
基于python图像处理API的使用示例
2020/04/03 Python
python抢购软件/插件/脚本附完整源码
2021/03/04 Python
HTML5 图片悬停放大的实现代码示例
2019/12/04 HTML / CSS
英国著名的化妆品折扣网站:Allbeauty.com
2016/07/21 全球购物
法国珠宝店:CLEOR
2017/01/29 全球购物
Java面试题:说出如下代码的执行结果
2015/10/30 面试题
常务副县长“四风”个人对照检查材料思想汇报
2014/10/02 职场文书
个人房屋买卖协议书(范本)
2014/10/04 职场文书
个人职业及收入证明
2014/10/13 职场文书
书法社团活动总结
2015/05/07 职场文书
董事长新年致辞
2015/07/29 职场文书
动画「半妖的夜叉姬」新BD特典图公开
2022/03/22 日漫