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环境搭建最新方法
Sep 05 PHP
PHP 危险函数解释 分析
Apr 22 PHP
php 调试利器debug_print_backtrace()
Jul 23 PHP
thinkphp 多表 事务详解
Jun 17 PHP
php 发送带附件邮件示例
Jan 23 PHP
简单谈谈PHP vs Node.js
Jul 17 PHP
php基于session实现数据库交互的类实例
Aug 03 PHP
php微信公众平台开发之获取用户基本信息
Aug 17 PHP
PHP实现可自定义样式的分页类
Mar 29 PHP
PHP substr()函数参数解释及用法讲解
Nov 23 PHP
PHP通过curl获取接口URL的数据方法
May 31 PHP
PHP常用的类封装小结【4个工具类】
Jun 28 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往windows中添加用户
2006/12/06 PHP
PHP学习资料汇总与网址
2007/03/16 PHP
php学习之 认清变量的作用范围
2010/01/26 PHP
PHP表单提交表单名称含有点号(.)则会被转化为下划线(_)
2011/12/14 PHP
解析PHP高效率写法(详解原因)
2013/06/20 PHP
Ajax+PHP实现的分类列表框功能示例
2019/02/11 PHP
PHP生成随机密码4种方法及性能对比
2020/12/11 PHP
神奇的代码 通杀各种网站-可随意修改复制页面内容
2008/07/17 Javascript
javascript 嵌套的函数(作用域链)
2010/03/15 Javascript
jquery form 加载数据示例
2014/04/21 Javascript
JavaScript获取DOM元素的11种方法总结
2015/04/25 Javascript
使用JQuery 加载页面时调用JS的实现方法
2016/05/30 Javascript
js验证真实姓名与身份证号,手机号的简单实例
2016/07/18 Javascript
使用jQuery5分钟快速搞定双色表格的简单实例
2016/08/08 Javascript
详解jQuery中的DOM操作
2016/12/23 Javascript
JS中的数组转变成JSON格式字符串的方法
2017/05/09 Javascript
详解Angular之constructor和ngOnInit差异及适用场景
2017/06/22 Javascript
vue实现模态框的通用写法推荐
2018/02/26 Javascript
layui表格 返回的数据状态异常的解决方法
2019/09/10 Javascript
解决layui富文本编辑器图片上传无法回显的问题
2019/09/18 Javascript
在Python的Flask框架中使用模版的入门教程
2015/04/20 Python
python正则表达式的使用
2017/06/12 Python
Python 处理文件的几种方式
2019/08/23 Python
python tkinter canvas使用实例
2019/11/04 Python
python3 实现函数写文件路径的正确方法
2019/11/27 Python
python实现PCA降维的示例详解
2020/02/24 Python
Python unittest 自动识别并执行测试用例方式
2020/03/09 Python
Python生成器传参数及返回值原理解析
2020/07/22 Python
详解python中的三种命令行模块(sys.argv,argparse,click)
2020/12/15 Python
使用CSS3的ruby-position固定注音位置的用法示例
2016/07/05 HTML / CSS
东南亚旅游平台:The Trip Guru
2018/01/01 全球购物
网络安全方面的面试题
2016/01/07 面试题
大学生新闻专业个人自我评价
2013/11/12 职场文书
金融学专科生自我鉴定
2014/02/21 职场文书
2015年办公室人员工作总结
2015/05/15 职场文书
SQL Server使用CROSS APPLY与OUTER APPLY实现连接查询
2022/05/25 SQL Server