最近自己开发了一个类似微信抢红包的功能,在网上找了很多红包生成的函数,但都不是那么完美,于是自己动手写了一个。

( 阿荣原创^_^ )

//$money 是发红包的总金额, $num 红包生成的数量

/**

* 生成单个红包

* @param float $money 红包金额(单位:元)

* @param int $num 红包个数

* @return float 单个红包的金额

*/

function makeSingleLuckMoney($money, $num) {

if ($num == 1) {

return round($money, 2);

}

$avg = $money / $num;

if ($avg < 0.1) {

$min = 0.01;

} else {

$min = $avg / 4;

}

$useMoney = $money - $num * $min;

if (($useMoney == 0) || ($useMoney < 0.02)) {

return $min;

}

$arr = array();

$c = $num;

for ($i = 0; $i < $c; $i++) {

$useMoney = $money - $num * $min;

$tmp = rand(1, $useMoney * 100) / 100;

$max = $useMoney / 2;

if ($tmp > $max) {

$n = $min + $max;

} else {

$n = $min + $tmp;

}

$tmpMoney = floor($n * 100) / 100;

$money = $money - $tmpMoney;

$num--;

$arr[] = $tmpMoney;

}

$keyNum = count($arr);

if ($keyNum > 1) {

$key = rand(0, $keyNum - 1);

} else {

$key = 0;

}

return floor($arr[$key] * 100) / 100;

}

/**

* 生成所有红包

* @param float $money 红包金额(单位:元)

* @param int $num 红包个数

* @return array 所有单个红包金额组成的数组

*/

function makeAllLuckMoney($money, $num) {

$leftMoney = $money;

$leftNum = $num;

$resultArr = array();

for ($i = 0; $i < $num; $i++) {

$resultArr[] = $luckMoney = makeSingleLuckMoney($leftMoney, $leftNum);

$leftMoney = $leftMoney - $luckMoney;

$leftNum--;

}

shuffle($resultArr);

return $resultArr;

}

//example

print_r(makeAllLuckMoney(10, 7));

php写抢红包,红包生成函数(微信抢红包)相关推荐

  1. matlab程序模拟微信抢红包,js模拟微信抢红包算法的讨论

    春节在家无聊,抢红包的时候想起来,不如自己写一个微信抢红包算法来练练手.本以为是非常简单的一个事情,但真正写下来也算是一波三折,不禁感叹,在程序员的路上,我还是太嫩了啊!写这篇文章的原因也是想与广大网 ...

  2. matlab程序模拟微信抢红包,js仿微信抢红包功能

    本文实例为大家分享了Android九宫格图片展示的具体代码,供大家参考,具体内容如下 仿微信抢红包 html,body,div{margin:0;padding:0;} body{background ...

  3. 抢红包 html 模板,微信抢红包源码和模拟demo

    微信抢红包源码和模拟demo 资源下载此资源下载价格为3D币,请先登录 资源文件列表 K_wechat/.classpath , 475 K_wechat/.project , 844 K_wecha ...

  4. 微信抢红包神器自动抢软件

    微信抢红包神器自动抢软件,支持企业红包,微信红包,还有各种红包雨,让你轻松秒变抢红包达人,微信抢红包神器自动抢最佳软件里面包括了各种形式,不需要root就能够轻松使用,轻轻松松获得红包,喜欢的玩家来试 ...

  5. 2016微信抢红包助手及源码

    代码名称:Android微信抢红包源码  微信抢红包助手一款全能抢红包软件,支持微信和QQ群内有抢红包自动抢.只需要根据提示在手机上安装我们的软件,当微信和QQ群里里出现红包时,我们的程序将自动将红包 ...

  6. 简单的python抢红包脚本-Python自动抢红包,超详细教程,再也不会错过微信红包了!...

    来源:python专栏 github:https://github.com/MiracleYoung/You-are-Pythonista/tree/master/PythonExercise/Too ...

  7. 用python语言模拟微信红包_python 模拟微信抢红包 基础语法实现demo

    1.实现微信抢红包 简易demo版 : 代码如下: from decimalimport Decimal # 提供了随机方法 import random print('$$$$$$weichat模拟微 ...

  8. 微信抢红包python脚本不用手机_用Python实现微信自动化抢红包,再也不用担心抢不到红包了...

    1. 概述 刚刚收到了两个消息,一个好消息,一个坏消息. 先说好消息,好消息就是微信群里有人要发红包,开心~ 不过转念一想,前几次的红包一个都没抢到,这次???不由自主的叹了一口气 - 过了一会,内心 ...

  9. 微信抢红包代码 python_python实现红包裂变算法

    本文实例介绍了python实现红包裂变算法,分享给大家供大家参考,具体内容如下 Python语言库函数 安装:pip install redpackets使用: import redpackets r ...

最新文章

  1. DataList在无数据记录时显示类似GridView空模板(EmptyDataTemplate)
  2. 干货 | XGBoost在携程搜索排序中的应用
  3. java与mysql时间类型对应的问题
  4. TM1810-3, TM1810-2 LED恒流驱动IC
  5. 回溯法解决工作分配问题及分析
  6. 背包学习————完全背包
  7. 网管型光纤收发器产品功能特性详解
  8. 编写歌唱比赛评分_营造园区浓厚文化氛围 三亚崖州湾科技城“最强音”歌唱比赛落幕...
  9. 没有算法资源,产品经理如何从0到1搭建推荐系统?
  10. 搞懂 Java equals 和 hashCode 方法
  11. python必备基础代码-Python基础练习之用户登录实现代码分享
  12. 微信解绑手机号服务器会保留吗,我把我的微信号给了别人,银行卡都解绑了,但手机号还在绑定,会不会有危险...
  13. Matlab 音频信号处理
  14. JSON入门教程(适合初学者)
  15. 微信支付商户接入(一)
  16. JavaScript-修炼之路第五层
  17. 搬文工在行动:“HP大中华区总裁孙振耀退休感言”
  18. 杨元庆:马雪征退休是她的决定 联想很尊重
  19. Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。(python)
  20. Swift —— 指针

热门文章

  1. 一篇关于数学建模美赛论文撰写的心得
  2. linux系统的7种banding方式
  3. Mysql数据库delete删除后数据恢复成功案例报告
  4. Python爬虫:爬取华为应用市场app数据
  5. 卸载安装Ubuntu18.04双系统、ROS+装机
  6. 【JS】js中的和符号,或符号
  7. 【Proe】三维模型转二维CAD图
  8. python爬取公众号文章如何获取发布时间
  9. 基于springboot的校园食堂订餐系统
  10. 移动终端应用开发上机3组件通信与广播