文档章节

php红包算法

qycms_cn
 qycms_cn
发布于 2016/11/14 14:29
字数 221
阅读 168
收藏 0
$total = 7;//总金额
$num   = 13;//红包总个数
$min   = 0.01;//红包最小数金额,可定义

$arr = array_fill(0, $num, $min);//用数组表示每人的红包,先设定每个人最小红包,保证每人一定能领到最小的红包
$total -= $min * $num;//减去预先分配给众人的最小红包总数
while ($total > 0.0) {
    $index = rand(0, $num - 1);//随机找人索引
    $seek  = rand($min * 100, round($total / $num, 2) * 100) / 100;//随机种子
    $arr[ $index ] += min($seek, $total);//把种子播某个人身上,红包金额累加
    $total -= $seek;
}
echo '红包分布如下:',PHP_EOL;
print_r($arr);//打印每个人身上的红包详细
echo '红包的总金额:', array_sum($arr);//验证红包的总数量
die;

输出结果:

红包分布如下:
Array
(
    [0] => 0.09
    [1] => 0.61
    [2] => 0.97
    [3] => 0.32
    [4] => 0.33
    [5] => 0.65
    [6] => 0.56
    [7] => 0.15
    [8] => 0.67
    [9] => 0.57
    [10] => 0.58
    [11] => 0.8
    [12] => 0.7
)
红包的总金额:7

 

© 著作权归作者所有

qycms_cn
粉丝 58
博文 16
码字总数 10066
作品 0
茂名
后端工程师
私信 提问
微信红包随机算法实现

看了微信红包的算法实现探讨(基于PHP)一文,我尝试使用C++重现,代码如下: #include <iostream> include <cstdlib> include <ctime> int Random(int _max){ max = max > 0 ? _max : 1; st......

初雪之音
2016/02/21
846
0
zqf 2.0.1 发布,开箱即用,php工具类的高性能c扩展

php扩展zqf 适用于高并发抢购、秒杀,二维码生成、红包生成,数组算法处理等多重功能集成一体的c扩展 目前zqf2.0.1已发布,更新如下: 新增支持二维码中间添加logo 新增支持红包保留两位小数...

qieangel
2018/04/17
0
0
php秒杀、红包、二维码扩展--php秒杀、红包、二维码扩展

php扩展zqf (兼容php7) 全局变量适用于高并发抢购、秒杀,红包生成,数组算法处理等,由于添加了二维码生成功能,安装本扩展之前需要安装libqrencode, 红包生成算法(拼手气红包和普通红包...

qieangel
2015/09/14
2.3K
0
PHP随机红包算法

2017年1月14日 14:19:14 星期六 一, 整体设计 算法有很多种, 可以自行选择, 主要的"架构" 是这样的, 用redis decr()命令去限流, 用mysql去记录各种需要的数据 二, 红包算法 简便起见, 红包金...

大王回山
2017/01/14
0
0
红包简单算法

最近在研究发红包的功能,于是写了个红包的生成算法。 红包生成算法的需求 预先生成所有的红包还是一个请求随机生成一个红包 简单来说,就是把一个大整数m分解(直接以“分为单位,如1元即1...

四明狂客
2016/08/20
64
0

没有更多内容

加载失败,请刷新页面

加载更多

Qt编写数据可视化大屏界面电子看板9-曲线效果

一、前言 为了编写数据可视化大屏界面电子看板系统,为了能够兼容Qt4和嵌入式linux系统,尤其是那种主频很低的,但是老板又需要在这种硬件上(比如树莓派、香橙派、全志H3、imx6)展示这么华...

飞扬青云
25分钟前
2
0
责任链模式

//这篇博客的博主真的不错,解析的都很清晰明了, https://blog.csdn.net/jason0539/article/details/45091639

南桥北木
51分钟前
3
0
Flutter -------- dio网络请求

dio是Flutter中文网开源的一个强大的Dart Http请求库,支持Restful API、FormData、拦截器、请求取消、Cookie管理、文件上传/下载、超时等... 1.添加依赖# dependencies: dio: 2.1.x #...

切切歆语
今天
1
0
PHP的学习

PHP变量的命名必须以$符开始,如: $i;$j;$name; $符后面的第一个字符不可以是数字,只能是字母或者下划线(_)。 除了下划线(_)之外,变量中不能出现任何特殊字符,也就是变量只能包含...

墨冥
今天
3
0
一篇文章彻底搞懂Java虚拟机

概念: 虚拟机:指以软件的方式模拟具有完整硬件系统功能、运行在一个完全隔离环境中的完整计算机系统 ,是物理机的软件实现。常用的虚拟机有VMWare,Visual Box,Java Virtual Machine(Jav...

骚年锦时
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部