生成带上下限随机红包算法

随机红包算法,非微信那样的绝对正态分布。可能波动比较大。

/*
* * @description: 随机生成红包 * @param $total 总金额 * @param $num 发放人数 * @param $min 最下金额 * @return array 返回$num个数金额数组 */ function getBonus($total,$num,$min){ for($i=1;$i<$num;$i++){ //默认安全上限为每次剩余金额的一半 $safe_total = ($total-($num-$i)*$min)/2; //安全上限也可为剩余金额和剩余人数比例 //$safe_total=($total-($num-$i)*$min)/($num-$i); $money = mt_rand($min * 100, $safe_total * 100)/100; $total = $total - $money; $tmp[] = $money; } $tmp[] = $total; return $tmp; }
原文地址:https://www.cnblogs.com/oceanL/p/9369926.html