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 ...
 
随机推荐
- LeetCode(123) Best Time to Buy and Sell Stock III
			
题目 Say you have an array for which the ith element is the price of a given stock on day i. Design an ...
 - poj 3280 回文字符串问题 dp算法
			
题意:给一个字符串,构成回文(空也是回文) 其中增删都需要代价.问:代价最少? 思路:把字符串s变空 dp[i][j]表示变成回文的最小代价 for(i=m-1;i>=0;--i) ...
 - SSAS——MDX基础
			
一.基本概念 MDX:一种查询语言,从多维的数据集单元格中检索数据.支持两种不同的模式: 1.表达式语言:定义和操纵Analysis Services对象和数据以计算值 2.查询语言:从Analysi ...
 - 1507: [NOI2003]Editor(块状链表)
			
1507: [NOI2003]Editor Time Limit: 5 Sec Memory Limit: 162 MBSubmit: 4157 Solved: 1677[Submit][Stat ...
 - 取出列表中第N大的数
			
array=list(range(10)) random.shuffle(array) print(array) def func1(array,n): d,k={},n while k>0: ...
 - VS重置开发环境的方法
			
经常由于各种插件的原因,导致VS有使用过程中出现断点进不去等各种情况的时候,这个方法可以让你的VS回到最初安装的状态,当然,这时候,各种配置也没有了,不到万不得已就勿使用. 下面以Vs2015来说明: ...
 - 流式处理框架storm浅析(上篇)
			
本文来自网易云社区 作者:汪建伟 前言 前一段时间参与哨兵流式监控功能设计,调研了两个可以做流式计算的框架:storm和spark streaming,我负责storm的调研工作.断断续续花了一周的时 ...
 - PHP define() 定义常量
			
PHP define()函数定义了运行时的常量, 具体语法如下所示: (PHP 4, PHP 5, PHP 7) define — Defines a named constant bool defi ...
 - [python学习篇][廖雪峰][2][高级函数] map 和reduce
			
我们先看map.map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回. 举例说明,比如我们有一个函数f(x)=x2,要把这个函数 ...
 - 101 Hack 50
			
101 Hack 50 闲来无事.也静不下心,打个代码压压压惊 Hard Questions by kevinsogo Vincent and Catherine are classmates who ...