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 相关文章推荐
新安装的MySQL数据库需要注意的安全知识
Jul 30 PHP
mcrypt启用 加密以及解密过程详细解析
Aug 07 PHP
CI框架开发新浪微博登录接口源码完整版
May 28 PHP
thinkphp特殊标签用法概述
Nov 24 PHP
PHP实现批量生成App各种尺寸Logo
Mar 19 PHP
PHP创建多级目录的两种方法
Oct 28 PHP
php 遍历目录,生成目录下每个文件的md5值并写入到结果文件中
Dec 12 PHP
thinkPHP5.0框架API优化后的友好性分析
Mar 17 PHP
thinkPHP5.0框架开发规范简介
Mar 25 PHP
PHP设计模式之模板方法模式定义与用法详解
Apr 02 PHP
PHP使用ActiveMQ实现消息队列的方法详解
May 31 PHP
解决Laravel无法使用COOKIE和SESSION的问题
Oct 16 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
判“新”函数:得到今天与明天的秒数
2006/10/09 PHP
php代码把全角数字转为半角数字
2007/12/10 PHP
在PHP模板引擎smarty生成随机数的方法和math函数详解
2014/04/24 PHP
php入门教程之Zend Studio设置与开发实例
2016/09/09 PHP
php实现微信企业转账功能
2018/10/02 PHP
JavaScript 学习点滴记录
2009/04/24 Javascript
Javascript 类与静态类的实现(续)
2010/04/02 Javascript
js控制的遮罩层实例介绍
2013/05/29 Javascript
js禁止页面复制功能禁用页面右键菜单示例代码
2013/08/29 Javascript
JS和jQuery使用submit方法无法提交表单的原因分析及解决办法
2016/05/17 Javascript
jquery实现图片轮播器
2017/05/23 jQuery
vue 组件 全局注册和局部注册的实现
2018/02/28 Javascript
jQuery+Cookie实现切换皮肤功能【附源码下载】
2018/03/25 jQuery
Vuejs 实现简易 todoList 功能 与 组件实例代码
2018/09/10 Javascript
玩转Koa之核心原理分析
2018/12/29 Javascript
Vue Autocomplete 自动完成功能简单示例
2019/05/25 Javascript
JavaScript 作用域实例分析
2019/10/02 Javascript
python通过pil模块获得图片exif信息的方法
2015/03/16 Python
用于统计项目中代码总行数的Python脚本分享
2015/04/21 Python
从请求到响应过程中django都做了哪些处理
2018/08/01 Python
python3实现钉钉消息推送的方法示例
2019/03/14 Python
pycharm创建scrapy项目教程及遇到的坑解析
2019/08/15 Python
python基于FTP实现文件传输相关功能代码实例
2019/09/28 Python
python实现在线翻译功能
2020/03/03 Python
HearthSong官网:儿童户外玩具、儿童益智玩具
2017/10/16 全球购物
您附近的水疗和健康场所:Spafinder(美国)
2019/07/05 全球购物
什么是SQL Server的确定性函数和不确定性函数
2016/08/04 面试题
什么是Remote Module
2016/06/10 面试题
财务会计人员岗位职责
2013/11/30 职场文书
大学军训通讯稿
2014/01/13 职场文书
学校课外活动总结
2014/05/08 职场文书
比赛口号大全
2014/06/10 职场文书
平安家庭事迹材料
2014/12/20 职场文书
2015年父亲节寄语
2015/03/23 职场文书
使用Python脚本对GiteePages进行一键部署的使用说明
2021/05/27 Python
mysql连接查询中and与where的区别浅析
2021/07/01 MySQL