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中的时间显示
Jan 18 PHP
php array_unique之后json_encode需要注意
Jan 02 PHP
php中利用post传递字符串重定向的实现代码
Apr 21 PHP
php数据库抽象层 PDO
May 07 PHP
php读取文件内容的几种方法详解
Jun 26 PHP
解析php php_openssl.dll的作用
Jul 01 PHP
php打包网站并在线压缩为zip
Feb 13 PHP
Thinkphp自定义代码生成工具及用法说明(附下载地址)
May 27 PHP
PHP互换两个变量值的方法(不用第三变量)
Nov 14 PHP
laravel框架创建授权策略实例分析
Nov 22 PHP
php实现的简单多进程服务器类完整示例
Feb 01 PHP
php设计模式之职责链模式实例分析【星际争霸游戏案例】
Mar 27 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/09/10 PHP
浏览器预览PHP文件时顶部出现空白影响布局分析原因及解决办法
2013/01/11 PHP
PHP时间戳 strtotime()使用方法和技巧
2013/10/29 PHP
PHP获取MAC地址的具体实例
2013/12/13 PHP
使用PHPExcel操作Excel用法实例分析
2015/03/26 PHP
php mailer类调用远程SMTP服务器发送邮件实现方法
2016/03/04 PHP
PHP面相对象中的重载与重写
2017/02/13 PHP
javascript 三种方法实现获得和设置以及移除元素属性
2013/03/20 Javascript
JS将所有对象s的属性复制给对象r(原生js+jquery)
2014/01/25 Javascript
JavaScript+html5 canvas绘制缤纷多彩的三角形效果完整实例
2016/01/26 Javascript
Angular中$compile源码分析
2016/01/28 Javascript
jQuery监听浏览器窗口大小的变化实例
2017/02/07 Javascript
Bootstrap导航条学习使用(一)
2017/02/08 Javascript
Vue2.0子同级组件之间数据交互方法
2018/02/28 Javascript
解决Vue.js 2.0 有时双向绑定img src属性失败的问题
2018/03/14 Javascript
Vue 第三方字体图标引入 Font Awesome的方法
2018/09/28 Javascript
vue实现购物车结算功能
2020/06/18 Javascript
python+POP3实现批量下载邮件附件
2018/06/19 Python
Python安装pycurl失败的解决方法
2018/10/15 Python
python实现Virginia无密钥解密
2019/03/20 Python
python实现对象列表根据某个属性排序的方法详解
2019/06/11 Python
详解Python二维数组与三维数组切片的方法
2019/07/18 Python
python单向循环链表原理与实现方法示例
2019/12/03 Python
解决Python3.7.0 SSL低版本导致Pip无法使用问题
2020/09/03 Python
如何在Anaconda中打开python自带idle
2020/09/21 Python
使用OpenCV校准鱼眼镜头的方法
2020/11/26 Python
美国网上鞋城:Shoeline.com
2016/11/17 全球购物
捷克家电和家具购物网站:OKAY.cz
2020/07/23 全球购物
四风问题自查报告剖析材料
2014/02/08 职场文书
酒店端午节促销方案
2014/02/18 职场文书
煤矿安全协议书
2014/08/20 职场文书
小班下学期个人总结
2015/02/12 职场文书
党员发展大会主持词
2015/07/03 职场文书
担保公司2015年终工作总结
2015/10/14 职场文书
考教师资格证不要错过的4个最佳时机
2019/07/17 职场文书
mysql中varchar类型的日期进行比较、排序等操作的实现
2021/11/17 MySQL