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 相关文章推荐
php5编程中的异常处理详细方法介绍
Jul 29 PHP
php 无极分类(递归)实现代码
Jan 05 PHP
php checkbox 取值详细说明
Aug 19 PHP
php中使用ExcelFileParser处理excel获得数据(可作批量导入到数据库使用)
Aug 21 PHP
php输出1000以内质数(素数)示例
Feb 16 PHP
PHP两种去掉数组重复值的方法比较
Jun 19 PHP
ThinkPHP模板中判断volist循环的最后一条记录的验证方法
Jul 01 PHP
PHP文件读写操作相关函数总结
Nov 18 PHP
php按单词截取字符串的方法
Apr 07 PHP
php中实现用数组妩媚地生成要执行的sql语句
Jul 10 PHP
Bootstrap+PHP实现多图上传功能实例详解
Apr 08 PHP
PHP实现关键字搜索后描红功能示例
Jul 03 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
smarty实例教程
2006/11/19 PHP
PHP+apc+ajax实现的ajax_upload上传进度条代码
2016/01/25 PHP
PHP PDOStatement::bindColumn讲解
2019/01/30 PHP
JQuery 获得绝对,相对位置的坐标方法
2010/02/09 Javascript
DLL+ ActiveX控件+WEB页面调用例子
2010/08/07 Javascript
浅析showModalDialog数据缓存问题(用禁止浏览器缓存解决)
2013/07/09 Javascript
JavaScript代码应该放在HTML代码哪个位置比较好?
2014/10/16 Javascript
JavaScript如何调试有哪些建议和技巧附五款有用的调试工具
2015/10/28 Javascript
javascript的理解及经典案例分析
2016/05/20 Javascript
jQuery插件Flexslider实现图片轮播、图文结合滑动切换效果
2020/04/16 Javascript
浅谈JavaScript 数据属性和访问器属性
2016/09/01 Javascript
JavaScript日期选择功能示例
2017/01/16 Javascript
JavaScript实现省市联动过程中bug的解决方法
2017/12/04 Javascript
JavaScript指定断点操作实例教程
2018/09/18 Javascript
vue模仿网易云音乐的单页面应用
2019/04/24 Javascript
详解在Angular4中使用ng2-baidu-map的方法
2019/06/19 Javascript
JS原形与原型链深入详解
2020/05/09 Javascript
vue单元格多列合并的实现
2020/11/26 Vue.js
[39:21]LGD vs OG 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.24
2019/09/10 DOTA
解析Python中的二进制位运算符
2015/05/13 Python
Python 使用SMTP发送邮件的代码小结
2016/09/21 Python
Python 装饰器实现DRY(不重复代码)原则
2018/03/05 Python
Python之list对应元素求和的方法
2018/06/28 Python
Python 函数list&amp;read&amp;seek详解
2019/08/28 Python
Pycharm内置终端及远程SSH工具的使用教程图文详解
2020/03/19 Python
django 实现简单的插入视频
2020/04/07 Python
python 安装移动复制第三方库操作
2020/07/13 Python
Links of London官方网站:英国标志性的珠宝品牌
2017/04/09 全球购物
新闻记者实习自我鉴定
2013/09/19 职场文书
编辑找工作求职信分享
2014/01/03 职场文书
党员承诺书内容
2014/03/26 职场文书
质量承诺书范文
2014/03/27 职场文书
活动总结怎么写
2014/04/28 职场文书
好段摘抄大全(48句)
2019/08/08 职场文书
MySQL查询学习之基础查询操作
2021/05/08 MySQL
MySQL系列之十四 MySQL的高可用实现
2021/07/02 MySQL