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 相关文章推荐
PHP4(windows版本)中的COM函数
Oct 09 PHP
解析php中用PHPMailer来发送邮件的示例(126.com的例子)
Jun 24 PHP
PHP彩蛋信息介绍和阻止泄漏的方法(隐藏功能)
Aug 06 PHP
php将日期格式转换成xx天前的格式
Apr 16 PHP
php文件操作相关类实例
Jun 18 PHP
php设置页面超时时间解决方法
Sep 22 PHP
PHP中常用的数组操作方法笔记整理
May 16 PHP
PHP实现的curl批量请求操作示例
Jun 06 PHP
PHP+mysql实现的三级联动菜单功能示例
Feb 15 PHP
解决laravel 出现ajax请求419(unknown status)的问题
Sep 03 PHP
php设计模式之原型模式分析【星际争霸游戏案例】
Mar 23 PHP
PHP的重载使用魔术方法代码实例详解
Feb 26 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
Get或Post提交值的非法数据处理
2006/10/09 PHP
php数据库连接
2006/10/09 PHP
笑谈配置,使用Smarty技术
2007/01/04 PHP
shopex中集成的站长统计功能的代码简单分析
2011/08/11 PHP
简单实用的PHP防注入类实例
2014/12/05 PHP
总结对比php中的多种序列化
2016/08/28 PHP
PHP实现多关键字加亮功能
2016/10/21 PHP
javascript下操作css的float属性的特殊写法
2007/08/22 Javascript
JavaScript 直接操作本地文件的实现代码
2009/12/01 Javascript
解析javascript 数组以及json元素的添加删除
2013/06/26 Javascript
js 获取元素下面所有li的两种方法
2014/04/14 Javascript
24款热门实用的jQuery插件推荐
2014/12/24 Javascript
详解AngularJS中的依赖注入机制
2015/06/17 Javascript
JS弹出窗口插件zDialog简单用法示例
2016/06/12 Javascript
js计算系统当前日期是星期几的方法
2016/07/14 Javascript
深入浅析jQuery对象$.html
2016/08/22 Javascript
import与export在node.js中的使用详解
2017/09/28 Javascript
VueCli3构建TS项目的方法步骤
2018/11/07 Javascript
如何在JavaScript中谨慎使用代码注释
2019/06/21 Javascript
微信小程序设置滚动条过程详解
2019/07/25 Javascript
微信小程序HTTP请求从0到1封装
2019/09/09 Javascript
web.py获取上传文件名的正确方法
2014/08/26 Python
Python中获取对象信息的方法
2015/04/27 Python
Python Property属性的2种用法
2015/06/21 Python
python开发之str.format()用法实例分析
2016/02/22 Python
Python正则表达式完全指南
2017/05/25 Python
pandas数据框,统计某列数据对应的个数方法
2018/04/11 Python
Python中按键来获取指定的值
2019/03/02 Python
Django中ORM找出内容不为空的数据实例
2020/05/20 Python
C++:memset ,memcpy和strcpy的根本区别
2013/04/27 面试题
农业资源与环境专业自荐信范文
2013/12/30 职场文书
关于安全的广播稿
2014/10/23 职场文书
2016春季运动会通讯稿
2015/07/18 职场文书
《世界多美呀》教学反思
2016/02/22 职场文书
css3应用示例:新增的选择器
2022/03/16 HTML / CSS
解决Springboot PostMapping无法获取数据的问题
2022/05/06 Java/Android