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 高手之路(二)
Oct 09 PHP
PHP中限制IP段访问、禁止IP提交表单的代码
Apr 23 PHP
PHP中将ip地址转成十进制数的两种实用方法
Aug 15 PHP
PHP小技巧之函数重载
Jun 02 PHP
php把大写命名转换成下划线分割命名
Apr 27 PHP
php面向对象与面向过程两种方法给图片添加文字水印
Aug 26 PHP
php在数据库抽象层简单使用PDO的方法
Nov 03 PHP
PHP的Yii框架入门使用教程
Feb 15 PHP
老生常谈PHP 文件写入和读取(必看篇)
May 22 PHP
详解Yii2 之 生成 URL 的方法
Jun 16 PHP
PHP使用Curl实现模拟登录及抓取数据功能示例
Apr 27 PHP
有关PHP 中 config.m4 的探索
Aug 26 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 获取本机外网/公网IP的代码
2010/05/09 PHP
PHP url 加密解密函数代码
2011/08/26 PHP
phpmyadmin显示utf8_general_ci中文乱码的问题终级篇
2013/04/08 PHP
编写跨浏览器的javascript代码必备[js多浏览器兼容写法]
2008/10/29 Javascript
JavaScript实现QueryString获取GET参数的方法
2013/07/02 Javascript
JS字符串截取函数实例
2013/12/27 Javascript
验证码在IE中不刷新而谷歌等浏览器正常的解决方案
2014/03/18 Javascript
JavaScript简介
2015/02/15 Javascript
JavaScript仿商城实现图片广告轮播实例代码
2016/02/06 Javascript
jQuery插件cxSelect多级联动下拉菜单实例解析
2016/06/24 Javascript
webpack+vue.js实现组件化详解
2016/10/12 Javascript
仿iframe效果Aajx文件上传实例
2016/11/18 Javascript
Bootstrap table表格简单操作
2017/02/07 Javascript
Angular2中如何使用ngx-translate进行国际化
2017/05/21 Javascript
vue中计算属性(computed)、methods和watched之间的区别
2017/07/27 Javascript
vue组件实现文字居中对齐的方法
2017/08/23 Javascript
javascript计算对象长度的方法
2017/10/25 Javascript
在一个页面实现两个zTree联动的方法
2017/12/20 Javascript
vue使用showdown并实现代码区域高亮的示例代码
2019/10/17 Javascript
js实现淘宝首页的banner栏效果
2019/11/26 Javascript
Python调用C语言开发的共享库方法实例
2015/03/18 Python
python下载文件时显示下载进度的方法
2015/04/02 Python
Python+Selenium自动化实现分页(pagination)处理
2017/03/31 Python
python方向键控制上下左右代码
2018/01/20 Python
Pycharm配置远程调试的方法步骤
2018/12/17 Python
python flask中动态URL规则详解
2019/11/22 Python
Python爬虫库BeautifulSoup获取对象(标签)名,属性,内容,注释
2020/01/25 Python
美国网上订购鲜花:FTD
2016/09/23 全球购物
社区学习十八大感想
2014/01/22 职场文书
股份合作协议书
2014/04/12 职场文书
低碳环保倡议书
2014/04/14 职场文书
白血病募捐倡议书
2014/05/14 职场文书
中国式结婚:司仪主持词(范文)
2019/07/25 职场文书
话题作文之成长
2019/12/09 职场文书
JS封装cavans多种滤镜组件
2022/02/15 Javascript
CSS中理解层叠性及权重如何分配
2022/12/24 HTML / CSS