实战模拟│揭秘为啥年会你抽不到特等奖[通俗易懂]

实战模拟│揭秘为啥年会你抽不到特等奖[通俗易懂]抽奖不只是概率性事件,有可能是确定性事件

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

? 随机抽奖

  • 随机抽奖当然是最公平的抽奖,就是当用户抽奖时随机返回抽奖结果
  • 这种结果完全随机,不受人为控制,中奖全凭借运气
  • 先定义奖池拥有的奖品,用户进来抽奖后,随机返回奖池中的奖品
<?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);
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/170857.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 使用线程池来创建线程的方法_线程池多线程实现

    使用线程池来创建线程的方法_线程池多线程实现1.如何使用线程池来创建线程?java中提供了一个静态工厂方法来创建不同的线程池: Executors通过静态方法创建出的线程都实现了ExecutorService接口。常用的方法包括:newFixedThreadPool(intthreads);创建一个固定数目的线程池newCachedThreadPool();创建一个可缓存的线程池,调用execute方法将重用以前…

    2022年10月21日
    2
  • 五个优秀的硬盘检测工具[通俗易懂]

    五个优秀的硬盘检测工具[通俗易懂]虽然硬盘价格不断大幅跳水,但它显然一直是我们最宝贵的资产,硬盘一旦损坏,所有下载的音乐、铃声、软件,工作的文档、报表、模型、图片都不复存在。本文介绍五个最好的硬盘检测工具,它们各有特色,有的可以监视局

    2022年7月4日
    41
  • 分布式

    分布式

    2021年3月12日
    123
  • Jquery 跳出循环

    Jquery 跳出循环今天写jquery的时候,遇到写神奇的问题,给input的value赋值,用val和prop都不行,最后用attr才改变了。另外点上下按钮,想要切换到上一年/月下一年/月,是循环去找的,必须加returnfalse;<divclass=”divchoosetime”style=”width:50px;”><i…

    2022年5月5日
    38
  • PL/SQL Developer下载安装及使用[通俗易懂]

    PL/SQL Developer下载安装及使用[通俗易懂]PL/SQLDeveloper下载安装及使用前言PL/SQLDeveloper是什么PL/SQLDeveloper下载PL/SQLDeveloper安装PL/SQLDeveloper使用PL/SQLDeveloper汉化PL/SQLDeveloper修改字体PL/SQLDeveloper编写SQL代码PL/SQLDeveloper连接远程服务器前言古语说的好,工欲善其事必先利其器。在开发中我们乜需要熟悉各种开发工具、数据库集成开发工具、等其他工具的使用。因为笔者在公司所使用的是or

    2022年10月12日
    2
  • 常见电子元器件的常用品牌汇总

    ​抽时间汇总了一些常见电子元器件常用品牌,大家在元器件选型时可以参考。电阻:Yageo国巨、Uniohm厚声、Walsin华新科、Fenghua风华、Ralec旺诠、KOA兴亚、Panasonic松下、AVX、Rohm罗姆、Samsung三星、TDK、TMTEC泰铭、Kyocera京瓷、PHYCOM飞元。电容:Yageo国巨、Samsung三星、Eyang宇阳、Murata村田、Taiyo太诱、Fenghua风华、Kyocera京瓷、HEC禾伸堂、Kemet基美、ISND华信安、AVX、TDK、Nich

    2022年4月4日
    81

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号