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错误信息方法的详解
Jun 09 PHP
深入php处理整数函数的详解
Jun 09 PHP
Yii操作数据库的3种方法
Mar 11 PHP
PHP实现加密的几种方式介绍
Feb 22 PHP
PHP统计目录中文件以及目录中目录大小的方法
Jan 09 PHP
关于PHP中Session文件过多的问题及session文件保存位置
Mar 17 PHP
PHP is_array() 检测变量是否是数组的实现方法
Jun 13 PHP
php版微信公众平台接口参数调试实现判断用户行为的方法
Sep 23 PHP
php连接mysql数据库
Mar 21 PHP
php 读写json文件及修改json的方法
Mar 07 PHP
PHP实现生成推广海报的方法详解
Mar 14 PHP
php中用unset销毁变量并释放内存
May 10 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+MYSQL的文章管理系统(二)
2006/10/09 PHP
php 安全过滤函数代码
2011/05/07 PHP
php防止恶意刷新与刷票的方法
2014/11/21 PHP
ThinkPHP模板标签eq if 中区分0,null,false的方法
2017/03/24 PHP
php及codeigniter使用session-cookie的方法(详解)
2017/04/06 PHP
php面向对象基础详解【星际争霸游戏案例】
2020/01/23 PHP
海量经典的jQuery插件集合
2010/01/12 Javascript
JS求平均值的小例子
2013/11/29 Javascript
javascript实现单击和双击并存的方法
2014/12/13 Javascript
JS动态显示表格上下frame的方法
2015/03/31 Javascript
JavaScript使用encodeURI()和decodeURI()获取字符串值的方法
2015/08/04 Javascript
跟我学习javascript解决异步编程异常方案
2015/11/23 Javascript
JS中创建函数的三种方式及区别
2016/03/13 Javascript
@ResponseBody 和 @RequestBody 注解的区别
2017/03/08 Javascript
tangram.js库实现js类的方式实例分析
2018/01/06 Javascript
微信小程序实现保存图片到相册功能
2018/11/30 Javascript
简述pm2常用命令集合及配置文件说明
2019/05/30 Javascript
JsonServer安装及启动过程图解
2020/02/28 Javascript
antd design table更改某行数据的样式操作
2020/10/31 Javascript
vue二选一tab栏切换新做法实现
2021/01/19 Vue.js
[35:26]DOTA2上海特级锦标赛B组小组赛#2 VG VS Fnatic第三局
2016/02/26 DOTA
python的格式化输出(format,%)实例详解
2018/06/01 Python
Tensorflow中的placeholder和feed_dict的使用
2018/07/09 Python
对Python通过pypyodbc访问Access数据库的方法详解
2018/10/27 Python
html5 css3 动态气泡按钮实例演示
2012/12/02 HTML / CSS
HTML5 新事件 小结
2009/07/16 HTML / CSS
iframe跨域的几种常用方法
2019/11/11 HTML / CSS
阿根廷网上配眼镜:SmartBuyGlasses阿根廷
2016/08/19 全球购物
阿根廷首家户外用品制造商和经销商:Montagne
2018/02/12 全球购物
期末自我鉴定
2014/01/23 职场文书
2014年党风建设工作总结
2014/11/19 职场文书
2014年招商工作总结
2014/11/22 职场文书
小学生优秀评语
2014/12/29 职场文书
雨花台导游词
2015/02/06 职场文书
2015国庆节放假通知范文
2015/07/30 职场文书
浅谈Python数学建模之线性规划
2021/06/23 Python