5个人平分50元红包,每个人5-15元,如何平均分配?
5个人平分50元红包,每个人5-15元,如何平均分配?
本文提供PHP代码实现5个人分配50元红包,每个人能领取5-15元红包的算法,并力求平均分配,确保每个人的红包金额尽可能接近。
// 初始化红包金额和人数
$amount = 50;
$count = 5;
// 计算每个人的最小和最大红包金额
$min = 5;
$max = 15;
// 计算每个人的平均红包金额
$avg = $amount / $count;
// 初始化每个人的红包金额
$redbag = array_fill(0, $count, 0);
// 分配红包金额
for ($i = 0; $i < $count; $i++) {
// 计算当前人的最大红包金额
$max_redbag = min($max, $amount - ($count - $i - 1) * $min);
// 随机分配当前人的红包金额
$redbag[$i] = mt_rand($min * 100, $max_redbag * 100) / 100;
// 更新红包总金额
$amount -= $redbag[$i];
}
// 输出每个人的红包金额
for ($i = 0; $i < $count; $i++) {
echo '第 ' . ($i + 1) . ' 个人的红包金额为:' . number_format($redbag[$i], 2) . ' 元
';
}
该代码实现的功能如下:
- 初始化红包金额和人数;
- 计算每个人的最小和最大红包金额;
- 计算每个人的平均红包金额;
- 循环分配每个人的红包金额,确保每个人的红包金额都落在最小和最大值之间,并尽可能接近平均值;
- 输出每个人的红包金额。
该代码可以使用户更方便地进行红包分配,确保每个人的红包金额尽可能接近,避免出现“抢红包”时有些人拿到太多,有些人拿到太少的情况。
原文地址: https://www.cveoy.top/t/topic/n9zB 著作权归作者所有。请勿转载和采集!