代码笔记 | 微信红包算法
2016-09-01 18:26
232 查看
/**生成红包的函数*/ function getRandMoney($totalMoney, $totalPeople=2, $miniMoney=1){ $randRemainMoney = $totalMoney - $totalPeople * $miniMoney;//剩余需要随机的钱数 return _getRandMoney($randRemainMoney, $totalPeople, $miniMoney); } /**红包生成的逻辑代码*/ function _getRandMoney($totalMoney, $totalPeople, $miniMoney){ $returnMessage = array('status'=>1, 'data'=>NULL); if($totalMoney > 0){ $returnMessage['data'] = _randMoney($totalMoney, $totalPeople, $miniMoney); }elseif($totalMoney == 0){ $returnMessage['data'] = array_fill(0, $totalPeople, 1); }else{ $returnMessage['status'] = -1; $returnMessage['data'] = '参数传递有误,生成红包失败'; } return $returnMessage; } /*参数无误,开始生成对应的红包金额*/ function _randMoney($totalMoney, $totalPeople, $miniMoney){ $data = array_fill(0, $totalPeople, $miniMoney); if($totalPeople > 1){ foreach($data as $k => $v){ if($k == $totalPeople -1){ $data[$k] = $totalMoney + $v; break; }else { if($totalMoney == 0) break; $randMoney = rand(0, $totalMoney); $totalMoney -= $randMoney; $data[$k] = $randMoney + $v; } } } return $data; }
相关文章推荐
- 微信红包算法-php代码
- 春节期间小明使用微信收到很多个红包,非常开心。在查看领取红包记录时发现,某个红包金额出现的次数超过了红包总数的一半。请帮小明找到该红包金额。写出具体算法思路和代码实现,要求算法尽可能高效。
- 微信红包签名算法 C#代码实现
- 微信红包签名算法 C#代码实现
- 春节期间小明使用微信收到很多个红包,非常开心。在查看领取红包记录时发现,某个红包金额出现的次数超过了红包总数的一半。请帮小明找到该红包金额。写出具体算法思路和代码实现,要求算法尽可能高效。
- java 微信随机红包算法代码实例
- 微信随机红包数详解和算法代码
- 微信抢红包微信 PHP代码实现
- 微信红包的算法实现探讨(基于PHP)
- 微信红包算法
- 感知机学习算法——统计学习方法笔记,代码实现
- Java版 微信红包算法
- 微信红包随机生成算法(PHP版)
- 【代码相似论文笔记】基于序列聚类的相似代码检测算法
- 微信JSSDK示例代码 笔记
- 抢红包的红包生成算法Java实现代码
- 实时随机数算法(微信红包分配算法)
- 微信红包游戏,代码模拟
- 笔记代码(各种算法实现)
- Python版微信红包分配算法