<?php
function rand_money($total_bean, $total_packet) {
$min_bean = 1;
$max_bean = 5000;
$range = 2;
$total_bean = $total_bean - $total_packet * $min_bean; //每个人预留一个最小值
$list = [];
$min = 1;
while (count($list) < $total_packet-1) {
$max = floor($total_bean / $total_packet) * $range;
$bean = rand($min, $max);
if ($bean <= $max_bean - 1) {
$list[] = $bean;
$total_bean -= $bean;
}
}
$list[] = $total_bean; //剩余的金豆作为最后一个红包
//合并
foreach ($list as $k => $v) {
$list[$k] += $min_bean;
}
return $list;
}
$totalmoney = 10000;//总共10000分就是100元大洋
$totalperson = 50;//需要邀请50人
$startprice = mt_rand(6000, 8000);//第一次随机一个进度,进度在60%到80%之间
echo $startprice;
$leftmoney = $totalmoney-$startprice;//剩余的进度随机拆分
$ret = rand_money($leftmoney, $totalperson-1); //
rsort($ret);//大小排序,约到最后每次邀请的人增加的金额就越小,前面越大
var_dump($ret); //邀请每个人的分钱数
echo $ret[0];
echo array_sum($ret); //分钱后的钱总和
网友回复