微信随机红包的计算
2015-11-16 11:31
453 查看
<?php
//$bonus_total总数 $bonus_count个数 $bonus_type类型
function randBonus($bonus_total = 0,$bonus_count = 3,$bonus_type=1){
$bonus_items = array();//结果
$bonus_balance = $bonus_total;//余额
$bonus_avg = number_format($bonus_total/$bonus_count,2);//平均数
$i = 0;
while($i<$bonus_count){
if($i<$bonus_count-1){
$rand = $bonus_type?(rand(1,$bonus_balance*100-1)/100):$bonus_avg;
$bonus_items[] = $rand;
$bonus_balance -= $rand;
}else{
$bonus_items[] = $bonus_balance;
}
$i++;
}
return $bonus_items;
}
$bonus_items = randBonus(100,3,1);
var_dump($bonus_items);
var_dump(array_sum($bonus_items));
function sendRandBonus($total = 0,$count=3,$type=1){
//$total总数 $count个数 $type类型
if($type==1){
$input = range(0.01,$total,0.01);
if($count>1){
$rand_keys = (array)array_rand($input,$count-1);
$last = 0;
foreach($rand_keys as $i=>$key){
$current = $input[$key]-$last;
$items[] = $current;
$last = $input[$key];
}
}
$items[] = $total-array_sum($items);
}else{
$avg = number_format($total/$count,2);
$i = 0;
while($i<$count){
$items[] = $i<$count-1?$avg:($total-array_sum($items));$i++;
}
}
return $items;
}
$items = sendRandBonus(100,3,1);
var_dump($items);
//$bonus_total总数 $bonus_count个数 $bonus_type类型
function randBonus($bonus_total = 0,$bonus_count = 3,$bonus_type=1){
$bonus_items = array();//结果
$bonus_balance = $bonus_total;//余额
$bonus_avg = number_format($bonus_total/$bonus_count,2);//平均数
$i = 0;
while($i<$bonus_count){
if($i<$bonus_count-1){
$rand = $bonus_type?(rand(1,$bonus_balance*100-1)/100):$bonus_avg;
$bonus_items[] = $rand;
$bonus_balance -= $rand;
}else{
$bonus_items[] = $bonus_balance;
}
$i++;
}
return $bonus_items;
}
$bonus_items = randBonus(100,3,1);
var_dump($bonus_items);
var_dump(array_sum($bonus_items));
function sendRandBonus($total = 0,$count=3,$type=1){
//$total总数 $count个数 $type类型
if($type==1){
$input = range(0.01,$total,0.01);
if($count>1){
$rand_keys = (array)array_rand($input,$count-1);
$last = 0;
foreach($rand_keys as $i=>$key){
$current = $input[$key]-$last;
$items[] = $current;
$last = $input[$key];
}
}
$items[] = $total-array_sum($items);
}else{
$avg = number_format($total/$count,2);
$i = 0;
while($i<$count){
$items[] = $i<$count-1?$avg:($total-array_sum($items));$i++;
}
}
return $items;
}
$items = sendRandBonus(100,3,1);
var_dump($items);
相关文章推荐
- 解决手机浏览器和微信中select中border:none;无用和去掉小三角
- 微信开发
- 微信分享问题纪录
- Android应用接入微信开放平台
- 玩转微信2次开发1_交互通信api.php(微擎版)
- 微信营销打假-携程帮忙砍一刀
- java---金额中文大小写实时转换小程序
- java---金额中文大小写实时转换小程序
- java---金额中文大小写实时转换小程序
- Android高仿微信图片选择功能的PhotoPicker
- 微信公众号开发接口指南(java实现)
- JavaScript 练习(四)排序小程序
- jquery1.8版本使用ajax实现微信调用出现的问题分析及解决办法
- expect小程序
- 不得不说微信之怪现状
- java微信模板消息接口的使用
- 动手动脑小程序——TryAndCatch
- 微信开发-access_token 过期解决方法
- 微信公众平台解决用户无状态问题
- js判断是否在微信浏览器中打开