PHP 抽奖概率计算(经典)
设置中奖的列表
字段说明
id 奖品编号
prize 奖品名称
v 中奖概率
$prize_arr = array(array('id' => 1, 'prize' => '笔记本电脑', 'v' => 1),array('id' => 2, 'prize' => '华为手机', 'v' => 5),array('id' => 3, 'prize' => '蓝牙音箱', 'v' => 10),array('id' => 4, 'prize' => '1000积分', 'v' => 12),array('id' => 5, 'prize' => '30积分', 'v' => 22),array('id' => 6, 'prize' => '下次没准就能中哦', 'v' => 50),
);
封装中奖概率函数
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;
}
获取中奖奖品
// 把奖品id 设置为键名
$prize_arr = array_combine(array_column($prize_arr, 'id'), $prize_arr);foreach($prize_arr as $key => $val)
{$arr[$val['id']] = $val['v'];
}$rid = get_rand($arr); //根据概率获取奖项id$res['yes'] = $prize_arr[$rid]['prize']; //中奖项
unset($prize_arr[$rid]); //将中奖项从数组中剔除,剩下未中奖项
shuffle($prize_arr); //打乱数组顺序
for($i = 0; $i < count($prize_arr); $i++)
{$pr[] = $prize_arr[$i]['prize'];
}
$res['no'] = $pr;
echo json_encode($res);
PHP 抽奖概率计算(经典)相关推荐
- 前端js计算抽奖概率
很好用的js计算抽奖概率的公式 let weightList = [20, 8, 30, 50, 80, 10] // 权重数组 weightList = [...weightList, 0, 0] ...
- 圣斗士星矢游戏抽奖计算机怎么计算,圣斗士星矢手游抽奖概率是多少 抽奖概率公布[多图]...
圣斗士星矢手游抽奖可以获得各种角色,有几率可以抽出价值非常高的角色,不过几率比较低,下面安族小编给大家介绍一下抽奖概率公布. 圣斗士星矢卡片介绍 卡片,有橙色的.紫色的.和蓝色的三种等级卡片,然后他的 ...
- php ajax 概率 转盘,php+jquery实现转盘抽奖 概率可任意调
转盘抽奖,炫丽的一般是flash做的.不懂flash而又不需要那么炫丽,可以简单的通过jquery来实现.网上教程有很多,跟着做了一下,也贴出来吧.要实现转盘抽奖,有两个关键点,一是让转盘或指针转起来 ...
- php概率计算_PHP指定概率算法
PHP指定概率算法,可用于刮刮卡,大转盘等抽奖算法. 假设:有一个二维数组,记录了所有本次抽奖的奖项信息: $test_arr =array('a'=>20,'b'=>30,'c'=> ...
- 小样本学习记录————相似性计算经典网络结构(孪生网络、匹配网络、原型网络、 关系网络)
小样本学习记录----四种相似性计算经典网络结构 小样本学习记录----四种相似性计算经典网络结构 孪生网络(Siamese network) 匹配网络(Matching network) 原型网络( ...
- php随机抽奖及抽奖概率程序
php抽奖概率方法 $notice = '谢谢回顾'; $prizeList = [ 1=>10, //一等奖中奖概率10% 2=>50,//二等奖中奖概率50% ...
- java抽奖概率抽奖
首先定义奖品类 import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotatio ...
- python计算数据百分比_概率计算:定义概率分布数据结构,Python实现概率分布计算...
使用Python实现马尔科夫随机场.蒙特卡洛采样等随机过程算法的前提,就是用Python实现概率的计算.并不只是数值计算,而是能够将随机模拟中常用的各种概率相关的操作,都能用计算机的数据结构来表达,其 ...
- 【数据挖掘】高斯混合模型 ( 与 K-Means 每个步骤对比 | 初始参数设置 | 计算概率 | 计算平均值参数 | 计算方差参数 | 计算高斯分布概率参数 | 算法终止条件 )
文章目录 I . 高斯混合模型 ( 样本 -> 模型 ) II . 高斯混合模型 ( 模型 -> 样本 ) III . 高斯混合模型 与 K-Means 迭代过程对比 IV . 高斯混合模 ...
最新文章
- webpack入门--前端必备
- es scroll 时间_游标查询 Scroll | Elasticsearch: 权威指南 | Elastic
- 三相逆变器双pi控制器参数如何调节_一分钟看懂维也纳三相整流器
- 字符串相似度匹配算法python_算法字符串相似度得分/哈希
- 超30万字的中台实战100讲2.0最终版(建议收藏!)
- POJ-2151 Check the difficulty of problems 概率DP
- Jetty使用内存过大的解决方案
- java与工业控制_JAVA工业控制系统方案
- 索尼相机手机控制对焦,操控指南丨 使用索尼微单的十个小技巧
- python下载包图网图片_Python爬虫 包图网case
- 【pytest】(六) pytest中fixture的使用
- idea pycharm 的注册方式
- VLC全部参数,libvlc_new函数参数,VLC SDK开发
- HL7解析类的使用(java)
- 亚洲众包网站悄然崛起:中国成最大“雇主”
- 顺序队列模板简单应用算法设计:农夫过河(这个比较难,我自己都觉得难)
- 杂项-操作系统:操作系统百科
- mac系统安装yarn,配置淘宝镜像失败的问题
- python营业数据分析_小案例-使用python进行销售数据分析
- 应届毕业生为什么要参加IT培训?