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 相关文章推荐
phpMyadmin 用户权限中英对照
Apr 02 PHP
组合算法的PHP解答方法
Feb 04 PHP
php 获取页面中指定内容的实现类
Jan 23 PHP
19个超实用的PHP代码片段
Mar 14 PHP
PHP使用GIFEncoder类处理gif图片实例
Jul 01 PHP
学习php开源项目的源码指南
Dec 21 PHP
php中实现用数组妩媚地生成要执行的sql语句
Jul 10 PHP
十个PHP高级应用技巧果断收藏
Sep 25 PHP
php+ajax实现无刷新数据分页的办法
Nov 02 PHP
php数值转换时间及时间转换数值用法示例
May 18 PHP
详解PHP实现支付宝小程序用户授权的工具类
Dec 25 PHP
laravel框架中表单请求类型和CSRF防护实例分析
Nov 23 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编程函数安全篇
2013/01/08 PHP
Yii框架中 find findAll 查找出制定的字段的方法对比
2014/09/10 PHP
php类的定义与继承用法实例
2015/07/07 PHP
PHP实现基于文本的摩斯电码生成器
2016/01/11 PHP
js 加载时自动调整图片大小
2008/05/28 Javascript
javascript 变量作用域 代码分析
2009/06/26 Javascript
js bind 函数 使用闭包保存执行上下文
2011/12/26 Javascript
JavaScript操作Cookie详解
2015/02/28 Javascript
Validform+layer实现漂亮的表单验证特效
2016/01/17 Javascript
JavaScript隐式类型转换
2016/03/15 Javascript
Javascript从数组中随机取出不同元素的两种方法
2016/09/22 Javascript
浅述Javascript的外部对象
2016/12/07 Javascript
深入理解React高阶组件
2017/09/28 Javascript
原生nodejs使用websocket代码分享
2018/04/07 NodeJs
详解vue使用vue-layer-mobile组件实现toast,loading效果
2018/08/31 Javascript
微信小程序自定义组件的实现方法及自定义组件与页面间的数据传递问题
2018/10/09 Javascript
VUE2.0+ElementUI2.0表格el-table循环动态列渲染的写法详解
2018/11/30 Javascript
python BeautifulSoup设置页面编码的方法
2015/04/03 Python
django项目搭建与Session使用详解
2018/10/10 Python
Django CBV类的用法详解
2019/07/26 Python
Python操作Sonqube API获取检测结果并打印过程解析
2019/11/27 Python
Django choices下拉列表绑定实例
2020/03/13 Python
Python 按比例获取样本数据或执行任务的实现代码
2020/12/03 Python
丝芙兰美国官网:SEPHORA美国
2016/08/03 全球购物
中国网上药店领导者:1药网
2017/02/16 全球购物
Agoda香港:全球特价酒店预订
2017/05/07 全球购物
MVC的各个部分都有那些技术来实现?如何实现?
2016/04/21 面试题
中文教师求职信
2014/02/22 职场文书
人力资源总监工作说明
2014/03/03 职场文书
地下停车场租赁协议范本
2014/10/07 职场文书
实习计划书范文
2015/01/16 职场文书
公证处委托书
2015/01/28 职场文书
幼儿园教师安全责任书
2015/05/08 职场文书
2016母亲节感恩话语
2015/12/09 职场文书
nginx负载功能+nfs服务器功能解析
2022/02/28 Servers
Python OpenGL基本配置方式
2022/05/20 Python