PHP编程实现计算抽奖概率算法完整实例


Posted in PHP onAugust 09, 2017

本文实例讲述了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<$prize_arrcount;$i++){
 $pr[] = $prize_arr[$i]['prize'];
 }
 $res['no'] = $pr;
 //抽奖结果
 $ro = $res['yes'];
 print_r($ro);
?>

运行结果:

iPad
PHP 相关文章推荐
php echo 输出字符串函数详解
May 13 PHP
php笔记之:数据类型与常量的使用分析
May 14 PHP
探讨fckeditor在Php中的配置详解
Jun 08 PHP
PHP的mysqli_query参数MYSQLI_STORE_RESULT和MYSQLI_USE_RESULT的区别
Sep 29 PHP
php相对当前文件include其它文件的方法
Mar 13 PHP
php字符串函数学习之strstr()
Mar 27 PHP
php英文单词统计器
Jun 23 PHP
PHP微信开发之文本自动回复
Jun 23 PHP
PHP实现上传图片到 zimg 服务器
Oct 19 PHP
ThinkPHP5实现作业管理系统中处理学生未交作业与已交作业信息的方法
Nov 12 PHP
PHP 爬取网页的主要方法
Jul 13 PHP
Laravel框架实现文件上传的方法分析
Sep 29 PHP
PHP实现将标点符号正则替换为空格的方法
Aug 09 #PHP
php实现的redis缓存类定义与使用方法示例
Aug 09 #PHP
PHP编程实现脚本异步执行的方法
Aug 09 #PHP
PHP并发查询MySQL的实例代码
Aug 09 #PHP
Yii2框架中使用PHPExcel导出Excel文件的示例
Aug 09 #PHP
PHP实现更改hosts文件的方法示例
Aug 08 #PHP
PHP编程实现阳历转换为阴历的方法实例
Aug 08 #PHP
You might like
php学习之数据类型之间的转换代码
2011/05/29 PHP
php入门学习知识点八 PHP中for循环基本应用之九九乘法口绝表
2011/07/14 PHP
深入php多态的实现详解
2013/06/09 PHP
深入PHP magic quotes的详解
2013/06/17 PHP
采用header定义为文件然后readfile下载(隐藏下载地址)
2014/01/31 PHP
Smarty高级应用之缓存操作技巧分析
2016/05/14 PHP
PHP通过引用传递参数用法分析
2016/12/01 PHP
js 图片缩放(按比例)控制代码
2009/05/27 Javascript
返回对象在当前级别中是第几个元素的实现代码
2011/01/20 Javascript
js输出阴历、阳历、年份、月份、周示例代码
2014/01/29 Javascript
jQuery插件Skippr实现焦点图幻灯片特效
2015/04/12 Javascript
Bootstrap每天必学之日期控制
2016/03/07 Javascript
动态更新highcharts数据的实现方法
2016/05/28 Javascript
JQuery在循环中绑定事件的问题详解
2016/06/02 Javascript
BootStrap.css 在手机端滑动时右侧出现空白的原因及解决办法
2016/06/07 Javascript
jquery表单插件Autotab使用方法详解
2016/06/24 Javascript
很棒的vue弹窗组件
2017/05/24 Javascript
JavaScript算法教程之sku(库存量单位)详解
2017/06/29 Javascript
理解 Node.js 事件驱动机制的原理
2017/08/16 Javascript
vue中动态设置meta标签和title标签的方法
2018/07/11 Javascript
基于Nodejs的Tcp封包和解包的理解
2018/09/19 NodeJs
JQuery常用简单动画操作方法回顾与总结
2019/12/07 jQuery
原生JS实现留言板功能
2020/02/08 Javascript
python定向爬虫校园论坛帖子信息
2018/07/23 Python
Python 使用类写装饰器的小技巧
2018/09/30 Python
python使用Turtle库绘制动态钟表
2018/11/19 Python
python二进制读写及特殊码同步实现详解
2019/10/11 Python
WxPython实现无边框界面
2019/11/18 Python
详解CSS3媒体查询响应式布局bootstrap 框架原理实战(推荐)
2020/11/16 HTML / CSS
加热夹克:RAVEAN
2018/10/19 全球购物
资深财务管理人员自我评价
2013/09/22 职场文书
医学专业个人求职自荐信格式
2013/09/23 职场文书
《中国的气候》教学反思
2014/02/23 职场文书
暑假安全教育广播稿
2014/09/10 职场文书
浅谈MySql整型索引和字符串索引失效或隐式转换问题
2021/11/20 MySQL
微前端qiankun改造日渐庞大的项目教程
2022/06/21 Javascript