<?php
$total=20;//红包总金额
$num=10;// 分成10个红包,支持10人随机领取
$min=0.01;//每个人最少能收到0.01元
$redpack = new redpack($total,$num,$min);
$jieguo = $redpack->getPack();
foreach($jieguo as $key=>$val){
$n = $key+1;
echo '第'.$n.'个红包:'.$val['money'].' 元,余额:'.$val['balance'].' 元<br>';
} class redpack{
//总金额
private $total=0;
//红包数量
private $num=0;
//最小红包金额
private $min=0.01; public function __construct($total,$num,$min)
{
$this->total = $total;
$this->num = $num;
$this->min = $min;
}
//红包结果
public function getPack()
{
$total = $this->total;
$num = $this->num;
$min = $this->min;
for ($i=1;$i<$num;$i++)
{
$safe_total=($total-($num-$i)*$min)/($num-$i);//随机安全上限
$money=mt_rand($min*100,$safe_total*100)/100;
$total=$total-$money;
//红包数据
$readPack[]= [
'money'=>$money,
'balance'=>$total,
];
}
//最后一个红包,不用随机
$readPack[] = [
'money'=>$money,
'balance'=>0,
];
//返回结果
return $readPack;
} }

(php)生成指定个数的随机红包的更多相关文章

  1. Lua在给定范围内,生成指定个数不重复随机数组

    本篇主要是参考 lua连续随机数 这篇文章完成.大家可以去原贴查看学习. 生成随机数组,暂时发现两种方法 1.把生成的数放到一个表里面,每次随机时判断这个表里是否有,若有再随机一次(问了朋友,很多人都 ...

  2. javascript生成指定范围的随机整数

    JavaScript有提供一个生成值区间在(0, 1)的随机小数的函数. Math.random(); // 0.10529863457509858 如果你和喜欢的人一起执行这个函数,之后生成的随机小 ...

  3. (C#)生成指定长度的随机字符串的通用方法

    .NET(C#)生成指定长度的随机字符串的通用方法,此方法可以指定字符串的长度,是否包含数字,是否包含符号,是否包含小写字母,是否包含大写字母等, 源码: #region 生成指定长度的随机字符串 / ...

  4. 生成32位UUID及生成指定个数的UUID

    参考地址:https://blog.csdn.net/xinghuo0007/article/details/72868799 UUID是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯 ...

  5. 从a-zA-Z0-9特殊字符中生成指定数量的随机字符密码的多层for循环跳出

    师从‘百测’besttest 今日牛老师布置了一个作业,生成一个随机密码,且要包含大写字母.小写字母.数字和特殊字符,且不能重复. 想着先生成密码,然后用各字符去检查是否存在,使用for嵌套循环. i ...

  6. Oracle 生成指定范围内随机日期

    Oracle生成一个指定范围内的随机日期 /* 年1月1日)的整数偏移量来保存(即把日期保存为一个数字); * 因此可通过寻找‘指定日期’与‘关键日期’相对应的整数偏移量,再加一个指定范围内的随机整数 ...

  7. js生成指定范围的随机整数

    定义一个random()函数,原理是 随机数和最大值减最小值的差相乘 最后再加上最小值. function random(min, max) { return Math.floor(Math.rand ...

  8. commons-text 生成指定长度的随机字符串

    package com.skylink.junge.demo; import java.util.HashSet; import java.util.Set; import org.apache.co ...

  9. 22. Generate Parentheses生成指定个括号

    生成指定个数的括号,这些括号可以相互包括,但是一对括号的格式不能乱(就是配对的一个括号的左括号要在左边,右括号要在右边) 思维就是从头递归的添加,弄清楚什么时候要添加左括号,什么时候添加右括号 有点像 ...

随机推荐

  1. HTML5音频

    <audio>用来播放声音文件. 案例1: <!DOCTYPE html><html><head lang="en"> <me ...

  2. AI自动寻路

    1.首先把游戏场景中的物体设为静态 2.选中Window 中的Navigation ,点击Bake进行场景烘焙 3.在需要寻路的游戏对象上添加 NavMeshAgent组件.调整其AgentSize大 ...

  3. 配色问题lingo实现

    大家好,我是小鸭酱,博客地址为:http://www.cnblogs.com/xiaoyajiang !调配颜色 要依次调配红.兰.白.黑.黄五种颜色 红  兰  白  黑  黄 红  0  6  1 ...

  4. NSArray和NSMutableArray相互转换, 以及常用方法-备

    有时候项目中NSArray和NSMutableArray需要相互转化,下面给出相关代码1.NSArray 1.1 转化:NSMutableArray 1 NSMutableArray *mutable ...

  5. DLNA架构在机顶盒上播放云存储文件的实现

    DLNA 架构在机顶盒上播放云存储文件的实现   摘要: 随着越来越多的数码设备,音像设备等对 UPNP 协议的支持和普及,业界对多媒体内容提供服务的需求越越来越强烈,为了实现遵循 UPNP 协议和  ...

  6. SQL Server 性能优化之——重复索引

    原文 http://www.cnblogs.com/BoyceYang/archive/2013/06/16/3139006.html 阅读导航 1. 概述 2. 什么是重复索引 3. 查找重复索引 ...

  7. Java学习系列(一)Java的运行机制、JDK的安装配置及常用命令详解

    俗话说:“十五的月亮十六圆”.那学习是不是也是如此呢?如果把月亮看成是我们的愿望,那十五便是我们所处的“高原期”,坚持迈过这个坎,我相信你的愿望终究会现实的.记得马云曾说:今天很残酷,明天更残酷,后天 ...

  8. phpcms 内部检测用户名长度更改

    <?php /*1.js部分ajax就不说了,很好改...把min  max更改下就行了具体在三个地方更改: inputValidator({min:2,max:40, //默认是20 1.会员 ...

  9. Zookeeper学习记录(一):设计与实现

    概述 Zookeeper是一个分布式的.开源的分布式应用协调服务.它暴露了一组简单的基础原件,分布式应用可以在这些原件之上实现更高级别的服务,如同步.配置维护.群组.和命名.它被设计成容易编程实现的, ...

  10. 小贝_mysql建表以及列属性

    mysql建表以及列属性 简要: 一.建表原则 二.具体的列属性说明 一.建表原则 建表: 事实上就是声明列的过程,数据终于是以文件的形式放在硬盘(内存) 列: 不同的列类型占的空间不一样. 选列的原 ...