点击查看代码
function redAlgorithm($money, $count)
{
if ($count * 0.01 > $money) {
throw new \Exception("单个红包不能低于0.01元");
}
$redpack = [];
$surplus = $money;
for ($i = 1; $i <= $count; $i++) {
$safeMoney = $surplus - ($count - $i) * 0.01;
$avg = $i == $count ? $safeMoney : bcdiv($safeMoney, ($count - $i), 2);
$rand = $avg > 0.01 ? mt_rand(1, $avg * 100) / 100 : 0.01;
$surplus = bcsub($surplus, $rand, 2);
$redpack[] = $rand;
}
$avg = bcdiv($surplus, $count, 2);
for ($n = 0; $n < count($redpack); $n++) {
$redpack[$n] = bcadd($redpack[$n], $avg, 2);
$surplus = bcsub($surplus, $avg, 2);
}
if ($surplus > 0) {
$keys = array_rand($redpack, $surplus * 100);
$keys = is_array($keys) ? $keys : [$keys];
foreach ($keys as $key) {
$redpack[$key] = bcadd($redpack[$key], 0.01, 2);
$surplus = bcsub($surplus, 0.01, 2);
}
}
return $redpack;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现