PHP平均小数红包算法
<?php
function RandMoney( $money,$num ){
$arr = array();//存放金额
$total_money = 0;//红包总金额
$thisMoney = $money;//红包的金额
$thisNum = $num;//红包的数量
for( $i=0; $i<$num;$i++ ){
//红包只剩一份时,直接返回剩余金额
if($thisNum==1){
$m = round($thisMoney,2);
}else{
//$thisMoney*100/$thisNum计算100倍的红包金额,至于*1.5这个是自己测出来的 1和2从网上找的会有一些bug,1.5比较稳定
//最后使用round处理100倍后金额在/100的小数问题
$m = round(mt_rand(1,$thisMoney*100/$thisNum*1.5)/100,2);
}
$arr[] = $m;//把算出来的金额塞进arr,以供查看,没有别的作用
$total_money += $m;//把算出来的金额加到total_money,用来验证是否最后红包金额正确
$thisMoney -= $m;//把红包的金额减去算出来的金额
$thisNum --;//红包的数量也减
}
print_r($arr);
echo "总金额:".$total_money;
}
RandMoney(10,20);
?>
PHP平均小数红包算法的更多相关文章
- PHP平均整数红包算法
<?php function RandomMoney( $money,$num ){ $arr = array(); $total_money = 0; $this_money = $money ...
- PHP随机红包算法
2017年1月14日 14:19:14 星期六 一, 整体设计 算法有很多种, 可以自行选择, 主要的"架构" 是这样的, 用redis decr()命令去限流, 用mysql去记 ...
- 微信红包算法TEST
1.基本算法 设定总金额为10元,有N个人随机领取:N=1 则红包金额=X元: N=2 为保证第二个红包可以正常发出,第一个红包金额=0.01至9.99之间的某个随机数 第二个红包=10-第一个红包金 ...
- php红包算法函数[优化]
php红包算法 <?php header("Content-Type: text/html;charset=utf-8");//输出不乱码,你懂的 $total=10000; ...
- JAVA实现拼手气红包算法
实现拼手气红包算法,有以下几个需要注意的地方: 抢红包的期望收益应与先后顺序无关 保证每个用户至少能抢到一个预设的最小金额,人民币红包设置的最小金额一般是0.01元,如果需要发其他货币类型的红包,比如 ...
- php 固定红包 + 随机红包算法
<?php /** * 随机红包+固定红包算法[策略模式] * copyright (c) 2016 http://blog.csdn.net/CleverCode */ //配置传输数据DTO ...
- php微信红包算法
微信红包算法.php /**生成红包的函数*/ function getRandMoney($totalMoney, $totalPeople=2, $miniMoney=1){ $randRemai ...
- PHP实现简易微信红包算法
<?php /** * PHP实现简易的微信红包算法 * @version v1.0 * @author quetiezheng */ function getMoney($total, $pe ...
- php 随机红包算法
<?php /** * 红包分配算法 * * example * $coupon = new Coupon(200, 5); * $res = $coupon->handle(); * p ...
随机推荐
- SPOJ 375 树链剖分 QTREE - Query on a tree
人生第一道树链剖分的题目,其实树链剖分并不是特别难. 思想就是把树剖成一些轻链和重链,轻链比较少可以直接修改,重链比较长,用线段树去维护. 貌似大家都是从这篇博客上学的. #include <c ...
- Centos 7下利用crontab定时执行任务详解
一 cron服务 cron服务是Linux的内置服务,但它不会开机自动启动.可以用以下命令启动和停止服务: /sbin/service crond start /sbin/service crond ...
- 图解spring事务管理的实现
- 忘记MySQL的root密码的解决方法
经常会有朋友或者同事问起,MySQL 的 root 密码忘了,不知道改怎么办. 其实解决方法很简单,下面是详细的操作步骤. (1)修改配置文件my.cnf,在配置文件[mysqld]下添加skip-g ...
- 解决vue、cnpm造成的样式错位问题
删除node_modules文件夹使用npm install不要使用cnpm install
- 【Luogu】P2303Longge的问题(莫比乌斯反演)
就让我这样的蒟蒻发一个简单易想的题解吧!!! 这题我一开始一看,woc这不是莫比乌斯反演么,推推推,推到杜教筛,输出结果一看不对 emmm回来仔细想想……woc推错了? 然后撕烤半天打了个暴力,A了 ...
- kb-07-RMQ线段树--07(动态规划)
RMQ是一类解决区间最值查询的算法的通称:.一共有四类:在代码中有说明: 下面是ST算法,就是动态规划做法: 来看一下ST算法是怎么实现的(以最大值为例): 首先是预处理,用一个DP解决.设a是要求区 ...
- 深入理解Java中的volatile关键字
在再有人问你Java内存模型是什么,就把这篇文章发给他中我们曾经介绍过,Java语言为了解决并发编程中存在的原子性.可见性和有序性问题,提供了一系列和并发处理相关的关键字,比如synchronized ...
- NOI2016 区间 【线段树】
题目 在数轴上有 n个闭区间 [l1,r1],[l2,r2],...,[ln,rn].现在要从中选出 m 个区间,使得这 m个区间共同包含至少一个位置.换句话说,就是使得存在一个 x,使得对于每一个被 ...
- 刷题总结——doing homework again(hdu1789)
题目: Problem Description Ignatius has just come back school from the 30th ACM/ICPC. Now he has a lot ...