抽奖的计算方式php,php如何实现计算抽奖概率的算法实例分享
这篇文章主要介绍了PHP编程实现计算抽奖概率算法,结合完整实例形式分析了php随机数运算相关操作技巧,需要的朋友可以参考下
本文实例讲述了PHP编程实现计算抽奖概率算法。分享给大家供大家参考,具体如下:
//计算抽奖的概率
function get_rand($proArr) {
$result = '';
$proSum = array_sum($proArr);
foreach ($proArr as $key => $proCur) {
$randNum = mt_rand(1, $proSum);
if ($randNum <= $proCur) {
$result = $key;
break;
} else {
$proSum -= $proCur;
}
}
unset ($proArr);
return $result;
}
$prize_arr = array(
'0' => array('id'=>1,'prize'=>'家电','v'=>2),
'1' => array('id'=>2,'prize'=>'数码相机','v'=>5),
'2' => array('id'=>3,'prize'=>'iPad','v'=>13),
'3' => array('id'=>4,'prize'=>'LED显示器','v'=>15),
'4' => array('id'=>5,'prize'=>'U盘','v'=>25),
'5' => array('id'=>6,'prize'=>'键盘','v'=>30),
'6' => array('id'=>7,'prize'=>'鼠标垫','v'=>10),
);
foreach ($prize_arr as $key => $val) {
$arr[$val['id']] = $val['v'];
}
$rid = get_rand($arr);
$res['yes'] = $prize_arr[$rid-1]['prize'];
unset($prize_arr[$rid-1]);
shuffle($prize_arr);
$prize_arrcount = count($prize_arr);
for($i=0;$i
$pr[] = $prize_arr[$i]['prize'];
}
$res['no'] = $pr;
//抽奖结果
$ro = $res['yes'];
print_r($ro);
?>
运行结果:
iPad
抽奖的计算方式php,php如何实现计算抽奖概率的算法实例分享相关推荐
- java 日期 年数_java 日期加减天数、月数、年数的计算方式
因为某个项目需要统计 近1周.近1个月.近6个月 等数据,所以在时间的加减上面想了很多方式,最后决定用java.util.Calendar java.util.Calendar ,提供了计算时间的方式 ...
- java 日期只计算年月日大小_java 日期加减天数、月数、年数的计算方式
因为某个项目需要统计 近1周.近1个月.近6个月 等数据,所以在时间的加减上面想了很多方式,最后决定用java.util.Calendar java.util.Calendar ,提供了计算时间的方式 ...
- 中国空气质量指数(AQI)及其计算方式
1.简介 环境空气质量标准的建立,可以为环境空气质量管理.保护人体健康.维护生态环境安全,促进人与社会.自然和谐可持续发展发挥积极作用.20世纪70年代,美国最先构建环境空气指数标准,随后,世界各国也 ...
- 蚂蚁借呗每月等额计算方式
在网上找蚂蚁借呗的计算方式,全是一堆计算不准确的算法,都是按整月来算的(每个月的天数不一样),但是蚂蚁借呗是按天算的,而且还是固定还款日,如我2月22日借款到3月10日还第一期,使用时间只有17天,所 ...
- java 日期加减天数、月数、年数的计算方式
因为某个项目需要统计 近1周.近1个月.近6个月 等数据,所以在时间的加减上面想了很多方式,最后决定用java.util.Calendar java.util.Calendar ,提供了计算时间的方式 ...
- 你知道几种乘法的计算方式?
前言 家里有本<算法详解>一直没有看,昨天晚上打开翻了翻,觉得写的挺有趣的,第一章讨论了一个大家都学过的内容,乘法的计算.大部分人计算乘法,应该都只有一种方式,乘法的计算,也算是一种算法, ...
- boundary IoU 的计算方式
先给numpy版本的代码,注意 图片的 shape 都是(w, h) # General util function to get the boundary of a binary mask. # 该 ...
- python损失函数实现_pytorch 实现cross entropy损失函数计算方式
均方损失函数: 这里 loss, x, y 的维度是一样的,可以是向量或者矩阵,i 是下标. 很多的 loss 函数都有 size_average 和 reduce 两个布尔类型的参数.因为一般损失函 ...
- 模型评估指标micro avg、macro avg和weighted avg的计算方式及区别
模型评估指标micro avg.macro avg和weighted avg的计算方式及区别-技术圈
最新文章
- 文献记录(part25)--ACDnet An action detection network for real-time edge computing based on flow-guided
- Quartz2 定时器 《一》(概述)
- c#简单类的继承【C#】
- lua 差值 日期_lua时间戳和日期转换及踩坑
- vim忽略大写和小写查找配置
- 使用python语言编写脚本控制freeswitch总结
- 鼎捷T100标准接口调用
- 初中英语语法(003)-be动词和一般动词的一般过去式
- 去掉网页从网页中拷贝到word中段落带有的背景颜色
- java神兽传说游戏,了不起的神兽传说
- windows下使用curl命令
- vue3警告Extraneous non-emits event listeners (XXX) were passed to component but could not be automatic
- English——slang about body
- 基于MindSpore复现Deeplabv3—语义分割
- 软件架构-zookeeper快速入门
- 【在线可测】通用中文点选验证码识别
- 【转】交换机开发(一)—— 交换机的工作原理
- pythonscrapy框架_简述python Scrapy框架
- 伊利收购澳优、蒙牛私有化雅士利,乳业双雄能在“奶粉界称王”吗?
- 推荐收藏系列:一文理解JVM虚拟机(内存、垃圾回收、性能优化)解决面试中遇到问题(图解版)
热门文章
- 荣耀6x升级Android8省电,华为EMUI6、安卓8.0最新消息:华为EMUI6来了!安卓8.0更智能更省电,速度快的飞起!...
- python拼手气红包_python红包提醒
- Acer(宏碁)笔记本Windows10一些热键(大小写锁、数字锁、触控板)开关的悬浮提示
- react如何刷新当前页面_react怎么强制刷新页面?
- Vue后台项目中权限管理
- 四川绵阳争当大数据产业“领头羊”
- 整数小拼接--二分法
- 记者现场直击:美国民众告别乔布斯
- torch.transpose()
- 电脑桌面便签怎么标记已完成工作便签事项内容?