这篇文章主要介绍了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如何实现计算抽奖概率的算法实例分享相关推荐

  1. java 日期 年数_java 日期加减天数、月数、年数的计算方式

    因为某个项目需要统计 近1周.近1个月.近6个月 等数据,所以在时间的加减上面想了很多方式,最后决定用java.util.Calendar java.util.Calendar ,提供了计算时间的方式 ...

  2. java 日期只计算年月日大小_java 日期加减天数、月数、年数的计算方式

    因为某个项目需要统计 近1周.近1个月.近6个月 等数据,所以在时间的加减上面想了很多方式,最后决定用java.util.Calendar java.util.Calendar ,提供了计算时间的方式 ...

  3. 中国空气质量指数(AQI)及其计算方式

    1.简介 环境空气质量标准的建立,可以为环境空气质量管理.保护人体健康.维护生态环境安全,促进人与社会.自然和谐可持续发展发挥积极作用.20世纪70年代,美国最先构建环境空气指数标准,随后,世界各国也 ...

  4. 蚂蚁借呗每月等额计算方式

    在网上找蚂蚁借呗的计算方式,全是一堆计算不准确的算法,都是按整月来算的(每个月的天数不一样),但是蚂蚁借呗是按天算的,而且还是固定还款日,如我2月22日借款到3月10日还第一期,使用时间只有17天,所 ...

  5. java 日期加减天数、月数、年数的计算方式

    因为某个项目需要统计 近1周.近1个月.近6个月 等数据,所以在时间的加减上面想了很多方式,最后决定用java.util.Calendar java.util.Calendar ,提供了计算时间的方式 ...

  6. 你知道几种乘法的计算方式?

    前言 家里有本<算法详解>一直没有看,昨天晚上打开翻了翻,觉得写的挺有趣的,第一章讨论了一个大家都学过的内容,乘法的计算.大部分人计算乘法,应该都只有一种方式,乘法的计算,也算是一种算法, ...

  7. boundary IoU 的计算方式

    先给numpy版本的代码,注意 图片的 shape 都是(w, h) # General util function to get the boundary of a binary mask. # 该 ...

  8. python损失函数实现_pytorch 实现cross entropy损失函数计算方式

    均方损失函数: 这里 loss, x, y 的维度是一样的,可以是向量或者矩阵,i 是下标. 很多的 loss 函数都有 size_average 和 reduce 两个布尔类型的参数.因为一般损失函 ...

  9. 模型评估指标micro avg、macro avg和weighted avg的计算方式及区别

    模型评估指标micro avg.macro avg和weighted avg的计算方式及区别-技术圈

最新文章

  1. 文献记录(part25)--ACDnet An action detection network for real-time edge computing based on flow-guided
  2. Quartz2 定时器 《一》(概述)
  3. c#简单类的继承【C#】
  4. lua 差值 日期_lua时间戳和日期转换及踩坑
  5. vim忽略大写和小写查找配置
  6. 使用python语言编写脚本控制freeswitch总结
  7. 鼎捷T100标准接口调用
  8. 初中英语语法(003)-be动词和一般动词的一般过去式
  9. 去掉网页从网页中拷贝到word中段落带有的背景颜色
  10. java神兽传说游戏,了不起的神兽传说
  11. windows下使用curl命令
  12. vue3警告Extraneous non-emits event listeners (XXX) were passed to component but could not be automatic
  13. English——slang about body
  14. 基于MindSpore复现Deeplabv3—语义分割
  15. 软件架构-zookeeper快速入门
  16. 【在线可测】通用中文点选验证码识别
  17. 【转】交换机开发(一)—— 交换机的工作原理
  18. pythonscrapy框架_简述python Scrapy框架
  19. 伊利收购澳优、蒙牛私有化雅士利,乳业双雄能在“奶粉界称王”吗?
  20. 推荐收藏系列:一文理解JVM虚拟机(内存、垃圾回收、性能优化)解决面试中遇到问题(图解版)

热门文章

  1. 荣耀6x升级Android8省电,华为EMUI6、安卓8.0最新消息:华为EMUI6来了!安卓8.0更智能更省电,速度快的飞起!...
  2. python拼手气红包_python红包提醒
  3. Acer(宏碁)笔记本Windows10一些热键(大小写锁、数字锁、触控板)开关的悬浮提示
  4. react如何刷新当前页面_react怎么强制刷新页面?
  5. Vue后台项目中权限管理
  6. 四川绵阳争当大数据产业“领头羊”
  7. 整数小拼接--二分法
  8. 记者现场直击:美国民众告别乔布斯
  9. torch.transpose()
  10. 电脑桌面便签怎么标记已完成工作便签事项内容?