zoukankan      html  css  js  c++  java
  • (php)生成指定个数的随机红包

     1 <?php
     2 $total=20;//红包总金额   
     3 $num=10;// 分成10个红包,支持10人随机领取   
     4 $min=0.01;//每个人最少能收到0.01元   
     5  $redpack = new redpack($total,$num,$min);
     6  $jieguo = $redpack->getPack();
     7  foreach($jieguo as $key=>$val){
     8      $n = $key+1;
     9      echo '第'.$n.'个红包:'.$val['money'].' 元,余额:'.$val['balance'].' 元<br>';   
    10  }
    11  
    12 class redpack{
    13     //总金额
    14     private $total=0;
    15     //红包数量
    16     private $num=0;
    17     //最小红包金额
    18     private $min=0.01;
    19      
    20     public function __construct($total,$num,$min)
    21     {
    22         $this->total = $total;
    23         $this->num = $num;
    24         $this->min = $min;
    25     }
    26     //红包结果
    27     public function getPack()
    28     {
    29         $total = $this->total;
    30         $num = $this->num;
    31         $min = $this->min;
    32         for ($i=1;$i<$num;$i++)   
    33         {   
    34             $safe_total=($total-($num-$i)*$min)/($num-$i);//随机安全上限   
    35             $money=mt_rand($min*100,$safe_total*100)/100;   
    36             $total=$total-$money;  
    37             //红包数据
    38             $readPack[]= [
    39                 'money'=>$money,
    40                 'balance'=>$total,
    41             ];
    42         }
    43         //最后一个红包,不用随机       
    44         $readPack[] = [
    45             'money'=>$money,
    46             'balance'=>0,
    47         ];
    48         //返回结果
    49         return $readPack;
    50     }
    51      
    52 }
  • 相关阅读:
    法正(44):鄙视
    法正(43):许攸
    法正(42):孔明
    法正(41):帮派
    法正(40):常委
    法正(39):寡妇
    法正(38):吴苋
    法正(37):刘备
    法正(29):暗弱
    法正(36):花瓶
  • 原文地址:https://www.cnblogs.com/inc-is-include/p/5039167.html
Copyright © 2011-2022 走看看