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代替。

浙公网安备 33010602011771号