本文主要介绍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

$pr[] = $prize_arr[$i]['prize'];

}

$res['no'] = $pr;

//抽奖结果

$ro = $res['yes'];

print_r($ro);

?>

运行结果:

iPad

相关推荐:

有关抽奖概率的课程推荐8篇

刮刮卡,大转盘php抽奖概率算法

php 抽奖概率算法

抽奖概率 php_php实现抽奖概率算法代码相关推荐

  1. java抽奖random,java抽奖概率,java抽奖

    java抽奖概率,java抽奖 Field Type Comment prize_name varchar(50) 奖品名称 total int(11) 数量 prizenum int(11) 奖品序 ...

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

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

  3. 抽奖概率 php_php抽奖概率算法

    /* *算法学习自百度.只是学习和记录 */ header("Content-type:text/html;charset=utf-8"); //1.设置奖项,id是奖项id,na ...

  4. php 大转盘抽奖概率 角度,在线抽奖大转盘和概率计算

    html> 抽奖效果演示 .rotary { position: relative; width: 854px; height: 504px; margin: 0 auto; backgroun ...

  5. java中奖率算法_抽奖概率-三种算法

    一.逢"几"中奖 逢"几"中奖,即通过预估抽奖人数和奖品数来判断,"几"=(抽奖人数/奖品数)*N.这是一种最简单抽奖算法,适合抽奖人数众多 ...

  6. java的概率的程序_java实现一个抽奖概率类

    在一些项目需求中,可能会遇到抽奖问题,如提供一系列奖品及获奖概率,要求根据概率返回每次抽到的奖品.以下是本人在实际项目中写的一个抽奖工具类,与大家共同分享: import java.util.Arra ...

  7. 前端js计算抽奖概率

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

  8. 手机抽奖页面代码html,html5大转盘抽奖支持手机转盘抽奖代码

    特效描述:html5 大转盘抽奖 支持手机 转盘抽奖代码.html5转盘,html5抽奖,手机转盘,手机抽奖,手机转盘抽奖,可配置奖品抽奖. 代码结构 1. 引入CSS 2. 引入JS 3. HTML ...

  9. php9宫格抽奖程序_PHP实现抽奖功能实例代码

    在项目开发中经常会遇到花钱抽奖类型的需求.但是老板总是担心用户用小钱抽到大奖.这样会导致项目亏损.下边这段代码可以有效制止抽奖项目亏钱. 个人奖池: 语言:thinkphp redis mysql 表 ...

  10. c# 如何把一个1000数字随机分成10个数字 总和1000 加抽奖概率

    int a = 1000;int[] arr = new int[9];Random rand = new Random(DateTime.Now.Millisecond);for (int i = ...

最新文章

  1. 【必须收藏】那些酷炫的深度学习网络图怎么画出来的?
  2. 题目 1004: [递归]母牛的故事
  3. 如何利用tcpdump抓包?
  4. android 半圆滚动菜单,自定义控件:实现半圆滚动菜单效果
  5. get_class 方法
  6. 为什么基于接口而非实现编程?
  7. 面向对象软件设计原则
  8. linux实训项目有哪些内容,实训项目2__Linux基本命令(带参考答案)
  9. 第四章 基于QT和DCMTK的Dicom 图像浏览器---检查文件夹下Dicom序列个数
  10. SecureCRT8.1下载+注册机+破解教程
  11. 智能客服问题相似度算法设计——第三届魔镜杯大赛第12名解决方案
  12. 基因编辑技术在农业中的应用综述
  13. 聊天记录怎么录视频 微信聊天记录屏幕录制
  14. Gradle的概念和理解.
  15. UE学习笔记01(3月)
  16. java is setter_为什么java需要getter/setter来获取私有属性?
  17. 从实验室跃进产业,腾讯AI是如何向to B进化的?
  18. 2019/12/24论文小组交流
  19. 压缩感知的实现——图像重建(含matlab代码)
  20. NTSTATUS类型返回值及含义

热门文章

  1. mysql 超卖_MYSQL处理高并发,防止库存超卖(图解)
  2. js中的四种常用数组排序方法(冒泡、选择、插入、快排)及sort排序
  3. ie10服务器运行失败,win7系统下无法安装ie10浏览器如何解决?win7系统下无法安装ie10浏览器三种解决方法...
  4. docker容器获取宿主机IP
  5. 51Ditu开放了地图服务API接口
  6. linux怎么加块硬盘,如何在Linux下添加第二块scsi硬盘?
  7. 兴业银行紧急核查国美贷款
  8. python函数_列表入门
  9. 可视化看板:基于电子竞技行业数据大数据可视化分析(详细代码及图文说明)
  10. Linux操作学习笔记(CentOS7)