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 处理图片的类实现代码
Oct 23 PHP
php中的观察者模式
Mar 24 PHP
PHP实现异步调用方法研究与分享
Oct 27 PHP
使用Curl进行抓取远程内容时url中文编码问题示例探讨
Oct 29 PHP
php中ftp_chdir与ftp_cdup函数用法
Nov 18 PHP
php 伪造HTTP_REFERER页面URL来源的三种方法
Sep 22 PHP
利用php-cli和任务计划实现刷新token功能的方法
May 03 PHP
ThinkPHP 3.2.3实现页面静态化功能的方法详解
Aug 03 PHP
postman的安装与使用方法(模拟Get和Post请求)
Aug 06 PHP
php数组和链表的区别总结
Sep 20 PHP
TP5框架实现自定义分页样式的方法示例
Apr 05 PHP
php 获取音视频时长,PHP 利用getid3 获取音频文件时长等数据
Apr 01 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函数
2008/10/03 PHP
php+ajax 实现输入读取数据库显示匹配信息
2015/10/08 PHP
PHP查询大量数据内存耗尽问题的解决方法
2016/10/28 PHP
两个Javascript小tip资料
2010/11/23 Javascript
jquery ready函数、css函数及text()使用示例
2013/09/27 Javascript
JavaScript获取某年某月的最后一天附截图
2014/06/23 Javascript
不同js异步函数同步的实现方法
2016/05/28 Javascript
原生JS仿QQ阅读点击展开、收起效果
2017/03/08 Javascript
Cpage.js给组件绑定事件的实现代码
2017/08/31 Javascript
bootstrap-table.js扩展分页工具栏(增加跳转到xx页)功能
2017/12/28 Javascript
vue2.0$nextTick监听数据渲染完成之后的回调函数方法
2018/09/11 Javascript
nodejs更新package.json中的dependencies依赖到最新版本的方法
2018/10/10 NodeJs
详解webpack引入第三方库的方式以及注意事项
2019/01/15 Javascript
微信小程序商品详情页底部弹出框
2019/11/22 Javascript
[05:14]辉夜杯主赛事第二日 RECAP精彩回顾
2015/12/27 DOTA
python实现中文分词FMM算法实例
2015/07/10 Python
Python的Flask框架中的Jinja2模板引擎学习教程
2016/06/30 Python
Django实现全文检索的方法(支持中文)
2018/05/14 Python
Python OpenCV读取png图像转成jpg图像存储的方法
2018/10/28 Python
老生常谈python中的重载
2018/11/11 Python
对Python信号处理模块signal详解
2019/01/09 Python
正确理解Python中if __name__ == '__main__'
2019/01/24 Python
python 的 scapy库,实现网卡收发包的例子
2019/07/23 Python
Python自动生成代码 使用tkinter图形化操作并生成代码框架
2019/09/18 Python
Python实现自动装机功能案例分析
2020/10/22 Python
Python 中的函数装饰器和闭包详解
2021/02/06 Python
美体小铺美国官网:The Body Shop美国
2017/11/10 全球购物
澳大利亚女性快速时尚零售商:Ally Fashion
2018/04/25 全球购物
Jones New York官网:美国女装品牌,受白领女性欢迎
2019/11/26 全球购物
毕业生精彩的自我评价分享
2013/10/06 职场文书
2014学习优秀共产党员先进事迹材料思想汇报
2014/09/14 职场文书
四查四看整改措施
2014/09/19 职场文书
领导干部作风建设剖析材料
2014/10/11 职场文书
大学生求职简历自我评价
2015/03/02 职场文书
企业宣传稿范文
2015/07/23 职场文书
react 项目中引入图片的几种方式
2021/06/02 Javascript