栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > PHP

简析PHP拆红包算法

PHP 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

简析PHP拆红包算法

本篇文章给大家简析PHP拆红包算法,有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

PHP拆红包算法

代码如下:

    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拆红包算法的详细内容,更多请关注考高分网其它相关文章!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/262459.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号