博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
微信随机红包的计算
阅读量:6296 次
发布时间:2019-06-22

本文共 1187 字,大约阅读时间需要 3 分钟。

<?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);

转载于:https://www.cnblogs.com/zlx7/p/4968454.html

你可能感兴趣的文章
关于redis的几件小事(六)redis的持久化
查看>>
webpack4+babel7+eslint+editorconfig+react-hot-loader 搭建react开发环境
查看>>
Maven 插件
查看>>
初探Angular6.x---进入用户编辑模块
查看>>
计算机基础知识复习
查看>>
【前端词典】实现 Canvas 下雪背景引发的性能思考
查看>>
大佬是怎么思考设计MySQL优化方案的?
查看>>
<三体> 给岁月以文明, 给时光以生命
查看>>
Android开发 - 掌握ConstraintLayout(九)分组(Group)
查看>>
springboot+logback日志异步数据库
查看>>
Typescript教程之函数
查看>>
Android 高效安全加载图片
查看>>
vue中数组变动不被监测问题
查看>>
3.31
查看>>
类对象定义 二
查看>>
收费视频网站Netflix:用户到底想要“点”什么?
查看>>
MacOS High Sierra 12 13系统转dmg格式
查看>>
关于再次查看已做的多选题状态逻辑问题
查看>>
动态下拉菜单,非hover
查看>>
政府安全资讯精选 2017年第十六期 工信部发布关于规范互联网信息服务使用域名的通知;俄罗斯拟建立备用DNS;Google打击安卓应用在未经同意情况下收集个人信...
查看>>