简单的一个红包算法

发表于

$total=10;//红包总额
$num=8;// 分成 8 个红包,支持 8 人随机领取
$min=0.01;//每个人最少能收到 0.01 元
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 元';

输出结果见下: 第1个红包:0.04 元,余额:9.96 元  第2个红包:0.56 元,余额:9.4 元  第3个红包:0.42 元,余额:8.98 元  第4个红包:0.89 元,余额:8.09 元  第5个红包:1.82 元,余额:6.27 元  第6个红包:0.98 元,余额:5.29 元  第7个红包:4.13 元,余额:1.16 元  第8个红包:1.16 元,余额:0 元

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注