用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - php代码库

生成指定个数的随机红包

2018-01-02 作者:blueboyzz举报

[php]代码库

<?php
$total=20;//红包总金额   
$num=10;// 分成10个红包,支持10人随机领取   
$min=0.01;//每个人最少能收到0.01元   
 $redpack = new redpack($total,$num,$min);
 $jieguo = $redpack->getPack();
 foreach($jieguo as $key=>$val){
     $n = $key+1;
     echo '第'.$n.'个红包:'.$val['money'].' 元,余额:'.$val['balance'].' 元<br>';   
 }
 
class redpack{
    //总金额
    private $total=0;
    //红包数量
    private $num=0;
    //最小红包金额
    private $min=0.01;
     
    public function __construct($total,$num,$min)
    {
        $this->total = $total;
        $this->num = $num;
        $this->min = $min;
    }
    //红包结果
    public function getPack()
    {
        $total = $this->total;
        $num = $this->num;
        $min = $this->min;
        for ($i=1;$i<$num;$i++)   
        {   
            $safe_total=($total-($num-$i)*$min)/($num-$i);//随机安全上限   
            $money=mt_rand($min*100,$safe_total*100)/100;   
            $total=$total-$money;  
            //红包数据
            $readPack[]= [
                'money'=>$money,
                'balance'=>$total,
            ];
        }
        //最后一个红包,不用随机       
        $readPack[] = [
            'money'=>$money,
            'balance'=>0,
        ];
        //返回结果
        return $readPack;
    }
     
}


分享到:
更多

网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。