+
95
-

回答

<?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); //分钱后的钱总和


网友回复

我知道答案,我要回答