Q:2493441723

php红包

参考:https://segmentfault.com/a/1190000011014127

<?php
/**
 * Created by PhpStorm.
 * User: legendnan
 * Date: 2017-10-18
 * Time: 15:58
 */
//单位分

$remainNum      = 3;
$remainMoney    = 1*100;
while (!empty($remainNum)) {
    $money = getRandomMoney($remainNum, $remainMoney);
    echo $money.chr(32);
}

function getRandomMoney(&$remainNum, &$remainMoney)
{
    if ($remainNum == 1) {
        $remainNum--;
        return $remainMoney;
    }
    $randomNum = mt_rand(100000,999999);
    $seed = $randomNum / 1000000;
    $min = 1;
    $max = $remainMoney / $remainNum *2;
    $money = $seed * $max;
    if($money <= $min || $money >= $max){
        $money = $min;
    }else{
        $money = floor($money);
    }
    $remainNum--;
    $remainMoney -= $money;
    return $money;
}

  优化了他的金额设置。 原有的基础上1块钱分配100个会导致最后结果为负数。或者最后为0的情况。

StringUtil::getRandom(6, 1)这个方法不知道是干什么用的。我用了mt_rand代替。
posted @ 2017-10-22 16:05  QQ2493441723  阅读(98)  评论(0)    收藏  举报