码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 实战模拟│揭秘为啥年会你抽不到特等奖


    一、随机抽奖#

    • 随机抽奖当然是最公平的抽奖,就是当用户抽奖时随机返回抽奖结果
    • 这种结果完全随机,不受人为控制,中奖全凭借运气
    • 先定义奖池拥有的奖品,用户进来抽奖后,随机返回奖池中的奖品
    <?php
    $prize = ['60寸大彩电', 'iphone13', '戴森吸尘器', '索尼微单', 'VR眼镜', '谢谢参与'];
    
    // 当有用户进来抽奖,进行随机抽奖
    shuffle($prize);
    
    // 抽奖结果
    print_r($prize[0]);
    

    二、概率抽奖#

    • 概率抽奖,其实就是给奖品设置概率,一般高价值的奖品会设置中奖的概率极低
    • 这种抽奖也是随机抽奖的一种,但是并没有上面那种没有概率控制的随机抽奖
    • 抽中特等奖是需要极大的运气成分的,大多数人都会抽奖价值低的奖品
    <?php
    $prize = [
        ['name' => '60寸大彩电', 'chance' => 100],
        ['name' => 'iphone13', 'chance' => 900],
        ['name' => '戴森吸尘器', 'chance' => 1000],
        ['name' => '索尼微单', 'chance' => 2000],
        ['name' => 'VR眼镜', 'chance' => 3000],
        ['name' => '谢谢参与', 'chance' => 3000]
    ];
    
    // 概率重组
    $chance = 0;
    foreach ($prize as &$item) {
        $chance += $item['chance'];
        $item['chance'] = $chance;
    }
    
    // 随机抽奖
    $rand = mt_rand(1, 10000);
    
    $result = [];
    foreach ($prize as $_k => $_v) {
        if ($_k == 0) {
            if ($rand > 0 && $rand <= $_v['chance']) {
                $result = $_v;
                break;
            }
        } else {
            if ($rand > $prize[$_k - 1]['chance'] && $rand <= $_v['chance']) {
                $result = $_v;
                break;
            }
        }
    }
    
    // 抽奖结果
    echo json_encode(compact('rand', 'result'));
    

    三、内定抽奖#

    • 内定抽奖是年会常用的抽奖方式,公司为了奖励那些本年度为公司做过重大贡献的人
    • 选择在年会上将指定奖品通过抽奖的方式送给那些人
    • 不仅能够给那些人带来鼓励,更多的是为了加强公司凝聚力
    • 这种抽奖模式,早先已经将奖品和内定人做了绑定
    • 只有当指定的人进来才可以抽到奖品,其他人都是谢谢参与,但是用户却不知道这种是内定的
    <?php
    $prize = [
        ['name' => '60寸大彩电', 'winners' => ['张三']],
        ['name' => 'iphone13', 'winners' => ['李四', '王五']],
        ['name' => '戴森吸尘器', 'winners' => ['亮仔']],
        ['name' => '索尼微单', 'winners' => ['李六']],
        ['name' => 'VR眼镜', 'winners' => ['小明']]
    ];
    
    // 开始抽奖,这里假如亮仔过来抽
    // 这里的用户也可以是用户唯一标识
    $user = '亮仔';
    
    $result = '谢谢参与';
    foreach ($prize as $item) {
        if (in_array($user, $item['winners'])) {
            $result = $item['name'];
            break;
        }
    }
    
    print_r('获得的奖品:' . $result);
    
  • 相关阅读:
    【数据可视化】第二章——基于matplotlib的数据可视化
    [CC2642r1] 移植EDEBUG并替换TI自带LOG -- JLINK(RTT)-- XDS110(UART),添加ATCMD,快速实现单例测试
    图像分割算法
    无硬盘的版本 1099,14寸笔记本,而且无硬盘的,特别有有意思,可以自己购买个硬盘,安装linux系统或者windows。
    2022.12.1 英语背诵
    054_末晨曦Vue技术_处理边界情况之组件之间的循环引用
    SpringCloud学习笔记万字整理(无广版在博客)
    datawhale - 基于术语词典干预的机器翻译挑战赛 (一)
    golang/云原生/Docker/DevOps/K8S/持续 集成/分布式/etcd 教程
    Azure云工作站上做Machine Learning模型开发 - 全流程演示
  • 原文地址:https://www.cnblogs.com/cxyliangzai/p/16373615.html
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号