设置中奖的列表
字段说明
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 抽奖概率计算(经典)相关推荐

  1. 前端js计算抽奖概率

    很好用的js计算抽奖概率的公式 let weightList = [20, 8, 30, 50, 80, 10] // 权重数组 weightList = [...weightList, 0, 0] ...

  2. 圣斗士星矢游戏抽奖计算机怎么计算,圣斗士星矢手游抽奖概率是多少 抽奖概率公布[多图]...

    圣斗士星矢手游抽奖可以获得各种角色,有几率可以抽出价值非常高的角色,不过几率比较低,下面安族小编给大家介绍一下抽奖概率公布. 圣斗士星矢卡片介绍 卡片,有橙色的.紫色的.和蓝色的三种等级卡片,然后他的 ...

  3. php ajax 概率 转盘,php+jquery实现转盘抽奖 概率可任意调

    转盘抽奖,炫丽的一般是flash做的.不懂flash而又不需要那么炫丽,可以简单的通过jquery来实现.网上教程有很多,跟着做了一下,也贴出来吧.要实现转盘抽奖,有两个关键点,一是让转盘或指针转起来 ...

  4. php概率计算_PHP指定概率算法

    PHP指定概率算法,可用于刮刮卡,大转盘等抽奖算法. 假设:有一个二维数组,记录了所有本次抽奖的奖项信息: $test_arr =array('a'=>20,'b'=>30,'c'=> ...

  5. 小样本学习记录————相似性计算经典网络结构(孪生网络、匹配网络、原型网络、 关系网络)

    小样本学习记录----四种相似性计算经典网络结构 小样本学习记录----四种相似性计算经典网络结构 孪生网络(Siamese network) 匹配网络(Matching network) 原型网络( ...

  6. php随机抽奖及抽奖概率程序

    php抽奖概率方法 $notice = '谢谢回顾'; $prizeList = [     1=>10, //一等奖中奖概率10%     2=>50,//二等奖中奖概率50%      ...

  7. java抽奖概率抽奖

    首先定义奖品类 import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotatio ...

  8. python计算数据百分比_概率计算:定义概率分布数据结构,Python实现概率分布计算...

    使用Python实现马尔科夫随机场.蒙特卡洛采样等随机过程算法的前提,就是用Python实现概率的计算.并不只是数值计算,而是能够将随机模拟中常用的各种概率相关的操作,都能用计算机的数据结构来表达,其 ...

  9. 【数据挖掘】高斯混合模型 ( 与 K-Means 每个步骤对比 | 初始参数设置 | 计算概率 | 计算平均值参数 | 计算方差参数 | 计算高斯分布概率参数 | 算法终止条件 )

    文章目录 I . 高斯混合模型 ( 样本 -> 模型 ) II . 高斯混合模型 ( 模型 -> 样本 ) III . 高斯混合模型 与 K-Means 迭代过程对比 IV . 高斯混合模 ...

最新文章

  1. webpack入门--前端必备
  2. es scroll 时间_游标查询 Scroll | Elasticsearch: 权威指南 | Elastic
  3. 三相逆变器双pi控制器参数如何调节_一分钟看懂维也纳三相整流器
  4. 字符串相似度匹配算法python_算法字符串相似度得分/哈希
  5. 超30万字的中台实战100讲2.0最终版(建议收藏!)
  6. POJ-2151 Check the difficulty of problems 概率DP
  7. Jetty使用内存过大的解决方案
  8. java与工业控制_JAVA工业控制系统方案
  9. 索尼相机手机控制对焦,操控指南丨 使用索尼微单的十个小技巧
  10. python下载包图网图片_Python爬虫 包图网case
  11. 【pytest】(六) pytest中fixture的使用
  12. idea pycharm 的注册方式
  13. VLC全部参数,libvlc_new函数参数,VLC SDK开发
  14. HL7解析类的使用(java)
  15. 亚洲众包网站悄然崛起:中国成最大“雇主”
  16. 顺序队列模板简单应用算法设计:农夫过河(这个比较难,我自己都觉得难)
  17. 杂项-操作系统:操作系统百科
  18. mac系统安装yarn,配置淘宝镜像失败的问题
  19. python营业数据分析_小案例-使用python进行销售数据分析
  20. 应届毕业生为什么要参加IT培训?

热门文章

  1. 高清修复太感人!百部高清修复版港片上线,AI增强老剧画质
  2. origin作统计图(两个x正轴,一个y轴效果)
  3. 【离散数学】重要等价公式和重言蕴含式
  4. 《30天自制操作系统》笔记----Day6
  5. 录音文件下载_录音转文字app有哪些?录音转文字助手怎么样?
  6. Ubuntu18+ 使用redshift调色温 夜间闪烁
  7. Windows 8 和 Office 15 截图泄漏(多图)
  8. SQL server 快捷键整理
  9. Android屏幕截图实现
  10. 十进制整数,转换成八进制和十六进制数并输出。