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

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

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新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);
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Vue3—父子组件传值(子组件使用 emit 传值到父组件)

    Vue3—父子组件传值(子组件使用 emit 传值到父组件)Vue3中,子组件通过setup函数中的第一个参数值props拿到定义的组件参数进行使用。如果要向父组件传参,需要使用setup函数中的第二个参数值context(组件上下文)中的emit。例1:Tab菜单子组件创建子组件Tabs.vue<template><divclass=”Tabs”><divv-for=”(menu,index)inlistMenu”:key=”index”…

  • pycharm多行代码同时注释、去除注释_vs如何统计代码行数

    pycharm多行代码同时注释、去除注释_vs如何统计代码行数使用pycharm编写Python脚本的时候,先选中需要注释的行,然后同时按键盘右下角的—-Ctrl和Ctrl键正上方的‘/’键—可以实现多行注释注意:1、只有在pycharm中编写Python代码(以.py结尾的文件)才能用此方法去多行注释2、在选中行的时候不管是全部选中,还是只选中了该行中的的部分代码,都能实现多行注释,如下图:注释前:注释后:…

  • 【rman,1】经典案例增量备份

    【rman,1】经典案例增量备份

  • idea打断点调试_vs断点调试快捷键

    idea打断点调试_vs断点调试快捷键IDEA断点调试–基础篇1前言Debug用来追踪代码的运行流程。我们通常会在程序运行过程中出现异常的时候,启用Debug模式来分析定位异常发生的位置,以及在运行过程中参数的变化。通常我们也可以启用Debug模式来跟踪代码的运行流程去学习三方框架的源码。而IDEA作为我们JAVA开发最常用的工具,所以我们对于IDEA的Debug更应该去了解一下。2断点类型IDEA中对于JAVA的断点进行了分类,有如下的4类:JavaLineBreakpoints:行断

    2022年10月20日
  • 2021-08-16 WPF控件专题 WrapPanel 控件详解

    2021-08-16 WPF控件专题 WrapPanel 控件详解1.WrapPanel控件介绍流面板子元素按顺序排列,如果按水平方向:从左到右,超出部分,自动换行到下一行垂直从上到下,下一列排列方向:OrientationItemWidthItemHeight调整面板的尺寸时,内部子元素的布局–自动调整弥补StackPanel的不足StackPanel与WrapPanel结合使用2.具体案例<BorderBorderBrush=”Red”BorderT.

发表回复

您的电子邮箱地址不会被公开。

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