今天看到一个红包算法,就使用了拿来主义
$total=10; //总额 $num=8; // 分成8个红包,支持8人随机领取 $min=0.10; //每个人最少能收到0.10元 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; echo '第'.$i.'个红包:'.$money.' 元,余额:'.$total.' 元 <br/>'; } echo '第'.$num.'个红包:'.$total.' 元,余额:0 元';