抽奖机制模型及算法

抽奖机制

连抽保底概率模型+不中概率加大模型(抽卡保底)

抽奖概率为n%,在达到某次次数后,每次概率比上次高m%,直至达到保底次数(概率累加和为100%),当抽到极品道具时候,会从奖池中随机抽选,因为是专属抽奖,所以如果本次摸鱼随机到专属,则下次必是专属
拿原神举例来说:
在[1,73]抽时,五星角色的概率为0.6%,在[74,90]次抽时,每次抽卡概率会比上次概率高6%,当获取五星角色时,会有50%的概率获取UP角色,若本次没有抽到UP角色,则下次五星角色必定是UP角色。根据该算法,则第90次达到保底,UP角色则为180次

根据抽奖人数固定比例奖品数量概率模型(逢几中奖)

假设卡A为100人才能有1人拥有,需要计算抽奖总数人,玩家进行抽奖需计算总的抽奖次数,对其进行取余100,得到指定的数,即为抽中
放到现实中,类似于第几个进门的顾客会享受福利

稀有物品最后抽到模型

例如此次抽奖用户只能进行3次抽奖,那最稀有的几种卡,在后几次进行抽奖,必定抽到,前几次抽奖为普通几率权重的1/n

纯随机模型

不进行任何代码影响,只使用随机来进行概率

抽奖算法

洗牌算法

类似于音乐播放器的随机播放,将奖品数组打乱,依次发放?

区间算法

把权重分组,比如有权重是1,2,3。给这权重累计计算总权重,分配空间,空间1是第一个物品,空间2-3是第二个物品,空间3-6是第三个物品,被用户抽到,需要进行删除该空间,比如用户1抽到了1,则现在空间变为空间1-2为第二个物品,空间2-5是第三个物品,如下图:
在这里插入图片描述

离散算法(区间算法优化?)

把概率分区分组,利用随机数产生随机概率,加入数组并且排序,比如有概率为:P1=0.2,P2=0.2,P3=0.3,P4=0.3。那么概率区段数组为[0.2,0.4,0.7,1.0]。产生随机数根据区间进行返回具体道具,如下图:
在这里插入图片描述

Alias 算法

比较抽象,是离散算法的进一步,把离散算法中的数据改为Alias Table,生成一个宽度为一的矩形,然后把原数据进行伸缩,至完全融入矩形中。
在这里插入图片描述
然后进行随机即可,[1,4]如果是2,则有可能会1/3的概率失败,因为有空的存在。这样的时间复杂度,最坏的情况下可能是无限。
这样的话,会有些地方多出一块矩形,或者少一部分矩形,我们需要把多出的部分放置在缺少的部分中,直至全部修改完毕,如果总概率为1则塞满,如果概率不满1,则会有空缺为null。但是每一列至多存在两个事件,不然的话又会回到之前的逻辑中,最后结果为:
在这里插入图片描述

依赖不可控的物理随机数 (感觉类似于毒的抽签)

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/342698.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mac 下载 nvm 后执行nvm -v 命令报错 nvm: command not found

1、问题:Mac 使用命令下载nvm 成功后执行 nvm -v 查看,报错:nvm command not found 2、原因:可能是系统更新后,默认的 shell 是 zsh,所以找不到配置文件 3、解决:可添加编辑.bash_profile 和 …

从无到有制作docker镜像、容器详细步骤

1、编写一个Dockerfile文件,内容如下 # 基础镜像jdk,jdk里包含里操作系统 FROM openjdk:8u282-jdk# 工作目录,也就是容器里目录 WORKDIR /home/prq/# 添加ppp目录下的文件到容器/home/prq/里 ADD ./ppp /home/prq/# 暴露端口8080 EXPOSE 8080# 启动脚本…

vue前端开发自学,组件的嵌套关系demo

vue前端开发自学,组件的嵌套关系demo!今天开始分享的,前端开发经常用到的,组件的嵌套关系案例代码。下面先给大家看看,代码执行效果。 如图,这个是代码执行后,的效果布局! 下面给大家贴出来源码。方便大家…

String有没有最大长度限制?

大家都用过String字符串,有的人可能还不知道它的长度在某些方面是有一些限制。 public String(byte bytes[], int offset, int length);这是java.lang.String中的一个构造函数,可以看到它的长度是int类型,int的最大取值是2^31-1.但是我们却不…

redis 从0到1完整学习 (十七):内存回收之内存淘汰策略

文章目录 1. 引言2. redis 源码下载3. 内存回收策略4. 如何设置内存淘汰策略4.1 在 Redis 配置文件设置(推荐重启后生效)4.2 运行时动态调整 5. 参考 1. 引言 前情提要: 《redis 从0到1完整学习 (一):安装…

【java八股文】之MYSQL基础篇

1、数据库三大范式是什么 第一范式:每个列都不可以再拆分。 第二范式:在第一范式的基础上,非主键列完全依赖于主键,而不能是依赖于主键的一部分。 第三范式:在第二范式的基础上,非主键列只依赖于主键&#…

2024 IAA增长变现玩法拆解,NetMarvel提出进阶版攻略!

2023年的国内外市场,很多大甲方都表示消极,字节游戏业务高歌猛进后大撤退更是直接震惊了整个行业,更别说第二第三梯队的服务商了。 动荡和低迷的经济局势还没有消散,这给开发者带来接连不断的挑战。 01 市场反馈是正向的&#x…

VS Code 配置 Vue3 模板 详细步骤

1、打开 VS Code ,在页面左下角找到这个设置图标,然后找到 “用户代码片段” 2、接着点击 “新建全局代码片段文件” 3、在输入框中输入你要设置的模板名,然后回车确认 4、接下来配置自己想要模板代码,或者也可以借鉴我写的这个&…

JavaScript(第二篇)浮点数运算精度问题,一网打尽所有相关面试题

前言 本篇文章是《面试题一网打尽》专栏的 javascript 第二篇文章,彻底解决浮点数运算精度相关的面试题目。欢迎大家关注我的这个专栏。 一、IEEE 754 标准 我们经常在文档中看到这个标准感觉是什么高深的东西,其实 IEEE 是一个组织类似公司名称&…

Sublime Text 3配置 Python 开发环境

Sublime Text 3配置 Python 开发环境 一、引言二、主要内容1. 初识 Sublime Text 32. 初识 Python2. 接入 Python2.1 下载2.2 安装和使用 python2.2 环境变量配置 3. 配置 Python 开发环境4. 编写 Python 代码5. 运行 Python 代码 三、总结 一、引言 Python 是一种简洁但功能强…

记录一次数据中包含转义字符\引发的bug

后端返回给前端的数据是: { "bizObj": { "current": 1, "orders": [ ], "pages": 2, "records": [ { "from": "1d85b8a4bd33aaf99adc2e71ef02960e", …

LInux初学之路linux的磁盘分区/远程控制/以及关闭图形界面/查看个人身份

虚拟机磁盘分配 hostname -I 查看ip地址 ssh root虚拟就ip 远程连接 win10之后才有 远程控制重新启动 reboot xshell 使用(个人和家庭版 免费去官方下载) init 3 关闭界面 减小内存使用空间 init 5 回复图形界面 runlevel显示的是状态 此时和上…