• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    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微信公众号开发之微信红包实现方法分析
    • PHP微信红包生成代码分享
    • 微信红包随机生成算法php版
    • 基于PHP微信红包的算法探讨
    • php仿微信红包分配算法的实现方法
    • PHP 生成微信红包代码简单
    • php官方微信接口大全(微信支付、微信红包、微信摇一摇、微信小店)
    • PHP微信红包API接口
    • php实现的微信红包算法分析(非官方)
    上一篇:PHP面向对象五大原则之接口隔离原则(ISP)详解
    下一篇:PHP面向对象五大原则之里氏替换原则(LSP)详解
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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