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中变量及部分适用方法
Mar 27 PHP
php设计模式 Proxy (代理模式)
Jun 26 PHP
PHP实现Javascript中的escape及unescape函数代码分享
Feb 10 PHP
php中有关合并某一字段键值相同的数组合并的改进
Mar 10 PHP
php返回当前日期或者指定日期是周几
May 21 PHP
PHP获取文件夹大小函数用法实例
Jul 01 PHP
PHP登录验证码的实现与使用方法
Jul 07 PHP
php微信公众平台示例代码分析(二)
Dec 06 PHP
php获取访问者浏览页面的浏览器类型
Jan 23 PHP
php基于自定义函数记录log日志方法
Jul 21 PHP
php实现生成PDF文件的方法示例【基于FPDF类库】
Jul 21 PHP
PHP+mysql实现的三级联动菜单功能示例
Feb 15 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基础知识:类与对象(3) 构造函数和析构函数
2006/12/13 PHP
ThinkPHP路由详解
2015/07/27 PHP
Linux下编译redis和phpredis的方法
2016/04/07 PHP
jQuery 1.4 15个你应该知道的新特性(译)
2010/01/24 Javascript
JQuery 选择器、过滤器介绍
2011/02/14 Javascript
js获得当前时区夏令时发生和终止的时间代码
2014/02/23 Javascript
jquery trigger伪造a标签的click事件取代window.open方法
2014/06/23 Javascript
jQuery.prop() 使用详解
2015/07/19 Javascript
json格式数据的添加,删除及排序方法
2016/01/21 Javascript
jQuery实现鼠标经过时高亮,同时其他同级元素变暗的效果
2016/09/18 Javascript
JS取模、取商及取整运算方法示例
2016/10/13 Javascript
headjs实现网站并行加载但顺序执行JS
2016/11/29 Javascript
Vue 表单控件绑定的实现示例
2017/08/11 Javascript
微信小程序实现点击按钮修改view标签背景颜色功能示例【附demo源码下载】
2017/12/06 Javascript
微信小程序实现滚动消息通知
2018/02/02 Javascript
Angular浏览器插件Batarang介绍及使用
2018/02/07 Javascript
JavaScript常用数组操作方法,包含ES6方法
2020/05/10 Javascript
Angular Excel 导入与导出的实现代码
2019/04/17 Javascript
JS实现获取当前所在周的周六、周日示例分析
2019/05/11 Javascript
vue如何获取自定义元素属性参数值的方法
2019/05/14 Javascript
Python实现拼接多张图片的方法
2014/12/01 Python
使用XML库的方式,实现RPC通信的方法(推荐)
2017/06/14 Python
Python之lambda匿名函数及map和filter的用法
2019/03/05 Python
python模块之subprocess模块级方法的使用
2019/03/26 Python
windows下安装Python虚拟环境virtualenvwrapper-win
2019/06/14 Python
python实现高斯(Gauss)迭代法的例子
2019/11/20 Python
python-numpy-指数分布实例详解
2019/12/07 Python
python可迭代对象去重实例
2020/05/15 Python
Python logging自定义字段输出及打印颜色
2020/11/30 Python
纯CSS3实现绘制各种图形实现代码详细整理
2012/12/26 HTML / CSS
美国最好的葡萄酒网上商店:Wine Library
2019/11/02 全球购物
益达广告词
2014/03/14 职场文书
python关于集合的知识案例详解
2021/05/30 Python
Python快速实现一键抠图功能的全过程
2021/06/29 Python
react 路由Link配置详解
2021/11/11 Javascript
sql查询语句之平均分、最高最低分及排序语句
2022/05/30 MySQL