概述
本篇文章给大家简析PHP拆红包算法,有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。
PHP拆红包算法
代码如下:
/**
* 拆分红包
* @param SendRedPackageRequest $request
* @return array
*/
protected function spitMoney(SendRedPackageRequest $request)
{
$result = [];
$reamingMoney = $request->money;
for ($i = $request->count; $i >= 1; $i--) {
if ($i === 1) {
$result[] = round($reamingMoney, 2);
$reamingMoney = 0;
} else {
$average = round(bcdiv($reamingMoney, $i), 2); //平均值
$amount = round(mt_rand(1, $average * 199) / 100, 2);
$reamingMoney = doubleval(bcsub($reamingMoney, $amount));
$result[] = round($amount, 2);
}
}
return $result;
}
登录后复制
逻辑比较简单,传入金额.和拆分的数量
首先循环要拆分的数量,判断如果是最后一个就把剩下的钱全部塞进去;
如果不是,就取剩余的金额(第一次循环剩余的金额=总金额)除以剩下的次数,取得平均值,然后再随机取最小的0.01 和平均值*2,把剩余的金额更新一下就行了。
算法模拟微信拆红包算法,但是这是提前计算拆分的数据保存的,微信是每次动态计算的。
推荐学习:《PHP视频教程》
以上就是简析PHP拆红包算法的详细内容,更多请关注靠谱客其它相关文章!
最后
以上就是辛勤眼神为你收集整理的简析PHP拆红包算法的全部内容,希望文章能够帮你解决简析PHP拆红包算法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复