php写抢红包,红包生成函数(微信抢红包)
最近自己开发了一个类似微信抢红包的功能,在网上找了很多红包生成的函数,但都不是那么完美,于是自己动手写了一个。
( 阿荣原创^_^ )
//$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写抢红包,红包生成函数(微信抢红包)相关推荐
- matlab程序模拟微信抢红包,js模拟微信抢红包算法的讨论
春节在家无聊,抢红包的时候想起来,不如自己写一个微信抢红包算法来练练手.本以为是非常简单的一个事情,但真正写下来也算是一波三折,不禁感叹,在程序员的路上,我还是太嫩了啊!写这篇文章的原因也是想与广大网 ...
- matlab程序模拟微信抢红包,js仿微信抢红包功能
本文实例为大家分享了Android九宫格图片展示的具体代码,供大家参考,具体内容如下 仿微信抢红包 html,body,div{margin:0;padding:0;} body{background ...
- 抢红包 html 模板,微信抢红包源码和模拟demo
微信抢红包源码和模拟demo 资源下载此资源下载价格为3D币,请先登录 资源文件列表 K_wechat/.classpath , 475 K_wechat/.project , 844 K_wecha ...
- 微信抢红包神器自动抢软件
微信抢红包神器自动抢软件,支持企业红包,微信红包,还有各种红包雨,让你轻松秒变抢红包达人,微信抢红包神器自动抢最佳软件里面包括了各种形式,不需要root就能够轻松使用,轻轻松松获得红包,喜欢的玩家来试 ...
- 2016微信抢红包助手及源码
代码名称:Android微信抢红包源码 微信抢红包助手一款全能抢红包软件,支持微信和QQ群内有抢红包自动抢.只需要根据提示在手机上安装我们的软件,当微信和QQ群里里出现红包时,我们的程序将自动将红包 ...
- 简单的python抢红包脚本-Python自动抢红包,超详细教程,再也不会错过微信红包了!...
来源:python专栏 github:https://github.com/MiracleYoung/You-are-Pythonista/tree/master/PythonExercise/Too ...
- 用python语言模拟微信红包_python 模拟微信抢红包 基础语法实现demo
1.实现微信抢红包 简易demo版 : 代码如下: from decimalimport Decimal # 提供了随机方法 import random print('$$$$$$weichat模拟微 ...
- 微信抢红包python脚本不用手机_用Python实现微信自动化抢红包,再也不用担心抢不到红包了...
1. 概述 刚刚收到了两个消息,一个好消息,一个坏消息. 先说好消息,好消息就是微信群里有人要发红包,开心~ 不过转念一想,前几次的红包一个都没抢到,这次???不由自主的叹了一口气 - 过了一会,内心 ...
- 微信抢红包代码 python_python实现红包裂变算法
本文实例介绍了python实现红包裂变算法,分享给大家供大家参考,具体内容如下 Python语言库函数 安装:pip install redpackets使用: import redpackets r ...
最新文章
- DataList在无数据记录时显示类似GridView空模板(EmptyDataTemplate)
- 干货 | XGBoost在携程搜索排序中的应用
- java与mysql时间类型对应的问题
- TM1810-3, TM1810-2 LED恒流驱动IC
- 回溯法解决工作分配问题及分析
- 背包学习————完全背包
- 网管型光纤收发器产品功能特性详解
- 编写歌唱比赛评分_营造园区浓厚文化氛围 三亚崖州湾科技城“最强音”歌唱比赛落幕...
- 没有算法资源,产品经理如何从0到1搭建推荐系统?
- 搞懂 Java equals 和 hashCode 方法
- python必备基础代码-Python基础练习之用户登录实现代码分享
- 微信解绑手机号服务器会保留吗,我把我的微信号给了别人,银行卡都解绑了,但手机号还在绑定,会不会有危险...
- Matlab 音频信号处理
- JSON入门教程(适合初学者)
- 微信支付商户接入(一)
- JavaScript-修炼之路第五层
- 搬文工在行动:“HP大中华区总裁孙振耀退休感言”
- 杨元庆:马雪征退休是她的决定 联想很尊重
- Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。(python)
- Swift —— 指针