红包分配代码
$total=intval($total*100);
$total_money=$total-$num;
$i=$num;
while($i>1){
$max=$total_money*2/小学作文大全300字 $i;
$now_bage=intval(mt_rand(0,$max));
$bage[]=$now_bage;
$total_money=$total_money-$now_bage;
$i--;
}
$bage[]=$total_money;
shuffle($bage)动漫背景壁纸高清 ;
for($j=0;$j<$num;$j++){
$now_bage=$bage[$j]+1;
$total=$total-$now_bage;
$money=$now_bage/100;
$da北英语 ta['rank'][]=array($j,$money,$total/100);
//echo'第'.$i.'个红包:'.$money.'元,余额:'.$total/100.'元
';
}
以上代码是参考了知乎中⼤神们猜测的微信红包分配机制,改肺属金 进后的实现⽅式。
思路是这样的。
第⼀步:每⼈最低宋慧乔婚纱照 为0.01,所以,每个⼈先分0.01,剩余部分随机分;后面的英语
第⼆步:假设剩余100元钱,分给⼗个⼈。那么第⼀个⼈获得红包⼤⼩怎么计算呢?100/10=10元。这是期望值。从0.00到20.00的区
间中(其中20=10乘以2)随机抽取⼀个数,就是第⼀个⼈获得红包的⼤⼩。假设第⼀个⼈获得了15元,那么剩下的85元平均分给9个
⼈,这九个⼈平均获得红包⼤⼩为9.4元,那么第⼆个⼈的红包⼤⼩均匀分布于0.00元到18.80元的区间中,依次类推。最后⼀个红包就直
接⽤剩余⾦额,不梦见大水 ⽤随机。
第三步:乱序第⼆步中获得的红包数额数组
第四步:第三步中获得的⼀列值,每个都加上0.01,得到的就是每个红包的真正数额
本文发布于:2023-03-26 16:06:58,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/1679818019396909.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:红包.doc
本文 PDF 下载地址:红包.pdf
留言与评论(共有 0 条评论) |