文档章节

php 抽奖算法 奖品数量固定

大灰狼wow
 大灰狼wow
发布于 2018/10/15 09:14
字数 289
阅读 66
收藏 0
PHP
<?php

//这里的算法   这里的概率不是100%,而是 pr/sum(pr)  如:一等奖的概率为0.29%
$prize = array(array('level' => 1, 'name' => "IPhone X", 'pr' => 1),
    array('level' => 2, 'name' => "小米电视4", 'pr' => 5),
    array('level' => 3, 'name' => "小米8", 'pr' => 10),
    array('level' => 4, 'name' => "小米扫地机", 'pr' => 20),
    array('level' => 5, 'name' => "充电宝", 'pr' => 300),);


//所以 这里也可以变成奖品数量,然后抽掉一个 减去一个也可的  不会发生超支的情况,抽到充电宝越多,name抽到iphone x产生的概率就变大了。
//如果iphone x已抽取,那pr变成0 即可。


function getPrize($prize)
{
    $arr = array();
    foreach ($prize as $k => $v) {
        $arr[$v['level']] = $v['pr'];
    }

    $totalPr = array_sum($arr);

    foreach ($arr as $k => $v) {
        $randnum = mt_rand(1, $totalPr);
        if ($randnum <= $v) {
            $luck = $k;
            break;
        } else {
            $totalPr -= $v;
        }
    }

    return $luck;
}

for ($i = 0; $i < 10; $i++) {
    echo getPrize($prize);
    echo "\r\n";
}

这个是参考别人的,可以结合具体产品数量,避免超额情况

参考地址:https://www.cnblogs.com/John727/p/4500095.html

© 著作权归作者所有

大灰狼wow
粉丝 48
博文 396
码字总数 49161
作品 1
嘉兴
程序员
私信 提问
php实现不定人数抽奖算法

算法实现 有100个奖品,要求每100人抽中一个,但参与活动的人数不固定,而且抽奖的人不是同时抽奖的(会有人陆续抽奖)。 如何实现?

嵌入菜鸟
2017/08/07
1K
12
php几个常用的概率算法(抽奖、广告首选)

做网站类的有时会弄个活动什么的,来让用户参加,既吸引用户注册,又提高网站的用户活跃度。同时参加的用户会获得一定的奖品,有100%中奖的,也有按一定概率中奖的,大的比如中个ipad、iphon...

蜗牛奔跑
2015/07/22
113
0
大神们,php概率抽奖的问题

现在做一个php抽奖的东西,里面的奖品数量有10万个(大奖或者小奖10万条数据),其中,每条数据对应一个概率1-100.请问大神们,这个怎么在抽奖页面,实现随机的概率,保证概率比较准。...

上半年
2013/07/10
603
4
答题赢大奖 | 阿里云大学开发者有奖知识挑战赛火热开启

挑战技术实力,赢取多重大奖 技术学习的重要性对开发者来说不言而喻,不过相信在学习过程中很多开发者都有这样的体验:投入了很多时间学习,但仍然不知道哪些知识点已经掌握扎实?哪些还不太...

阿里云大学云百科
06/21
55
0
Java抽奖抢购算法

表结构 代码实现 应用场景 单件奖品抢购(可限时) 多件奖品按概率中奖(可限时、可不限量)

天蓝1122
2016/07/28
291
0

没有更多内容

加载失败,请刷新页面

加载更多

爬虫可以采集哪些数据?爬虫借用什么代理可以提高效率

学习爬虫的门槛非常低,特别是通过Python学习爬虫,即使是网上也能找到许多学习爬虫的方法,而且爬虫在数据采集方面效果比较好,比如可以采集几万、上百万网页数据进行分析,带来极有价值的数...

xiaotaomi
32分钟前
4
0
redis自建笔记

自建redis笔记 最近在linux安装了一下redis,特做一些笔记! 本文先单节点启动redis,然后再进行持久化配置,在次基础上,再分享搭建主从模式的配置以及Sentinel 哨兵模式及集群的搭建 单节点...

北极之北
34分钟前
4
0
没想到Spring Boot居然这么耗内存,有点惊讶

Spring Boot总体来说,搭建还是比较容易的,特别是Spring Cloud全家桶,简称亲民微服务,但在发展趋势中,容器化技术已经成熟,面对巨耗内存的Spring Boot,小公司表示用不起。如今,很多刚诞...

程序员修BUG
37分钟前
5
0
Spring Security 实战干货:Spring Boot 中的 Spring Security 自动配置初探

1. 前言 我们在前几篇对 Spring Security 的用户信息管理机制,密码机制进行了探讨。我们发现 Spring Security Starter相关的 Servlet 自动配置都在spring-boot-autoconfigure-2.1.9.RELEASE...

码农小胖哥
39分钟前
4
0
Docker 容器时区时间不一致 问题解决

解决方案: 1,最傻瓜也最方便的处理方式,运行新的容器前设置本机时区和时间文件与容器的映射 docker run -v /etc/timezone:/etc/timezone -v /etc/localtime:/etc/localtime ...1 -v /etc/...

突突突酱
40分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部