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的中问验证码
Nov 25 PHP
php 执行系统命令的方法
Jul 07 PHP
解析关于java,php以及html的所有文件编码与乱码的处理方法汇总
Jun 24 PHP
PHP大批量插入数据库的3种方法和速度对比
Jul 08 PHP
php过滤表单提交的html等危险代码
Nov 03 PHP
php之readdir函数用法实例
Nov 13 PHP
基于PHP实现简单的随机抽奖小程序
Jan 05 PHP
php实现中文转数字
Feb 18 PHP
Yii2创建多界面主题(Theme)的方法
Oct 08 PHP
PHP数据库操作三:redis用法分析
Aug 16 PHP
Laravel 批量更新多条数据的示例
Nov 27 PHP
gearman管理工具GearmanManager的安装与php使用方法示例
Feb 27 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
PHP Document 代码注释规范
2009/04/13 PHP
PHP数据类型的总结分析
2013/06/13 PHP
修改php.ini以达到屏蔽错误信息并记录日志
2013/06/16 PHP
Symfony2安装的方法(2种方法)
2016/02/04 PHP
thinkphp框架类库扩展操作示例
2019/11/26 PHP
Node.js:Windows7下搭建的Node.js服务(来玩玩服务器端的javascript吧,这可不是前端js插件)
2011/06/27 Javascript
Angularjs 实现一个幻灯片示例代码
2016/09/08 Javascript
Bootstrap表格使用方法详解
2017/02/17 Javascript
Node+Express+MongoDB实现登录注册功能实例
2017/04/23 Javascript
Nodejs+express+ejs简单使用实例代码
2017/09/18 NodeJs
解决vue cli使用typescript后打包巨慢的问题
2019/09/30 Javascript
jQuery--遍历操作实例小结【后代、同胞及过滤】
2020/05/22 jQuery
使用Element的InfiniteScroll 无限滚动组件报错的解决
2020/07/27 Javascript
JavaScript中变量提升和函数提升的详解
2020/08/07 Javascript
JavaScript实现页面高亮操作提示和蒙板
2021/01/04 Javascript
Centos5.x下升级python到python2.7版本教程
2015/02/14 Python
Python登录并获取CSDN博客所有文章列表代码实例
2017/12/28 Python
Python识别快递条形码及Tesseract-OCR使用详解
2019/07/15 Python
Python列表元素常见操作简单示例
2019/10/25 Python
Series和DataFrame使用简单入门
2019/11/13 Python
Ranorex通过Python将报告发送到邮箱的方法
2020/01/12 Python
Python使用xlrd实现读取合并单元格
2020/07/09 Python
python性能测试工具locust的使用
2020/12/28 Python
Python实现微信表情包炸群功能
2021/01/28 Python
css3实现六边形边框的实例代码
2019/05/24 HTML / CSS
前端水印的简单实现代码示例
2020/12/02 HTML / CSS
KIKO MILANO荷兰网上商店:意大利专业化妆品品牌
2017/05/12 全球购物
Blancsom美国/加拿大:服装和生活用品供应商
2018/07/27 全球购物
澳大利亚游乐场设备品牌:Lifespan Kids
2019/05/24 全球购物
傲盾软件面试题
2015/08/17 面试题
一套Delphi的笔试题一
2016/02/14 面试题
教育科研先进个人材料
2014/01/26 职场文书
债务授权委托书范本
2014/10/17 职场文书
婚前保证书范文
2015/02/28 职场文书
漫改真人电影「萌系男友是燃燃的橘色」公开先导视觉图
2022/03/21 日漫
纯CSS打字动画的实现示例
2022/08/05 HTML / CSS