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通过COM使用ADODB的简单例子
Dec 31 PHP
Mysql中分页查询的两个解决方法比较
May 02 PHP
php使用curl模拟登录后采集页面的例子
Nov 04 PHP
php连接odbc数据源并保存与查询数据的方法
Dec 24 PHP
php简单实现MVC
Feb 05 PHP
YII Framework框架教程之日志用法详解
Mar 14 PHP
PHP函数shuffle()取数组若干个随机元素的方法分析
Apr 02 PHP
PHP常见错误提示含义解释(实用!值得收藏)
Apr 25 PHP
Laravel学习教程之从入口到输出过程详解
Aug 27 PHP
php实现数组中出现次数超过一半的数字的统计方法
Oct 14 PHP
Laravel第三方包报class not found的解决方法
Oct 13 PHP
通过PHP实现获取访问用户IP
May 09 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 URL地址获取函数代码(端口等) 推荐
2010/05/15 PHP
php中通过curl smtp发送邮件
2012/06/05 PHP
PHP调用VC编写的COM组件实例
2014/03/29 PHP
PHP获取指定月份第一天和最后一天的方法
2015/07/18 PHP
php使用gzip压缩传输js和css文件的方法
2015/07/29 PHP
Yii框架参数配置文件params用法实例分析
2019/09/11 PHP
jquery text()要注意啦
2009/10/30 Javascript
ExtJS 学习专题(一) 如何应用ExtJS(附实例)
2010/03/11 Javascript
JQuery 1.3.2以上版本中出现pareseerror错误的解决方法
2011/01/11 Javascript
js如何设置在iframe框架中指定div不显示
2013/12/04 Javascript
使用jQuery和PHP实现类似360功能开关效果
2014/02/12 Javascript
JavaScript控制按钮可用或不可用的方法
2015/04/03 Javascript
JavaScript基于遍历操作实现对象深拷贝功能示例
2019/03/05 Javascript
redux.js详解及基本使用
2019/05/24 Javascript
js验证密码强度解析
2020/03/18 Javascript
vue 动态创建组件的两种方法
2020/12/31 Vue.js
理解Python中函数的参数
2015/04/27 Python
django manage.py扩展自定义命令方法
2018/05/27 Python
Python+numpy实现矩阵的行列扩展方式
2019/11/29 Python
python 等差数列末项计算方式
2020/05/03 Python
python+selenium自动化实战携带cookies模拟登陆微博
2021/01/19 Python
介绍一下linux的文件权限
2014/07/20 面试题
机电专业毕业生推荐信
2013/11/10 职场文书
淘宝好评语大全
2014/05/05 职场文书
计算机毕业生自荐信
2014/06/12 职场文书
陈胜吴广起义口号
2014/06/20 职场文书
男性健康日的活动方案
2014/08/18 职场文书
关于感恩的演讲稿400字
2014/08/26 职场文书
2014年教师节国旗下讲话稿
2014/09/10 职场文书
助学贷款贫困证明
2014/09/23 职场文书
2014年体育工作总结
2014/11/24 职场文书
学生检讨书范文
2015/01/27 职场文书
房地产公司财务总监岗位职责
2015/04/03 职场文书
学校食堂食品安全承诺书
2015/04/29 职场文书
结婚司仪主持词
2015/06/29 职场文书