期望计算与随机模拟 您所在的位置:网站首页 寻觅定位是真的吗 期望计算与随机模拟

期望计算与随机模拟

2024-04-26 22:48| 来源: 网络整理| 查看: 265

摘要

没啥好摘要的,直接看引言就行了。

目录

内容太少,不设目录。

引言

一般地,我们认为雀魂是一款以麻雀牌为核心玩法的游戏。通过其中的寻觅系统,我们可以获得各种角色。在有角色收集系统的游戏中,角色全收集,也被称为角色全拓,往往是许多玩家会关注的一个地方。目前许多游戏中购买角色时需要使用类似于扭蛋的方式,为了帮助有购买意向的玩家合理规划开销,对于随机过程的模拟,很有必要。

游戏设定与前置条件

为了简化问题,我们在这里给出以下限定条件:

本文写作时,雀魂有48个常驻角色。我们令所有常驻角色均处于同一卡池中且不考虑非常驻角色(实际游戏中有两个常驻卡池,且其中包含的角色不重叠)

雀魂公示的角色获取概率为5%。在下面的计算中,我们采信这一概率,并认为抽到角色时,会随机获得48个常驻角色之一,且获得各角色概率相等(无论是否为重复角色),不会根据玩家已有角色进行针对性调整。

作为一个扭蛋游戏,其保底机制为:每次扭蛋可以获得一个信仰点数,玩家可以花费150个信仰点数自选兑换一个常驻角色。通过这种方式不会获得重复角色。

这个游戏中,十连扭蛋需要花费1800勾玉。在本文后续计算中,如无特别说明,一般采用如下换算关系,且不考虑游戏中的任何充值活动:

寻觅10次=1800勾玉=900 NTD=205.91 CNY

计算A:全吃保底

首先考虑理论上的最大开销,即整个过程中没有通过抽扭蛋获得任何角色,所有角色都通过信仰点数兑换的情况。

常驻角色有48个,兑换每个角色需要150点信仰,即15次十连扭蛋。那么,要凑够可以兑换所有角色的信仰点数,就需要720次十连扭蛋,开销大约是648000 NTD,折合下来又大约是148255.62 CNY,四舍五入一下,大概是十五万。

计算B:不使用保底时的期望

为了简化计算,在这一部分的计算中,我们不考虑使用信仰点数定向兑换新角色的情况,只考虑通过不断抽卡最后集齐全部48个常驻角色所需的期望抽卡次数。

前面提到过,公示的角色获取概率为5%,即平均每20次扭蛋可以得到1个角色。那么,我们在后续计算中,可以这样考虑:平均每支付2个十连,可以获得一个随机角色(可能是重复角色);我们将2个十连定义为一个廿连,并在计算过程中认为支付一个廿连即可获得一个角色(当然,实际上这只是平均情况,但是这样定义不影响数学期望的计算)。

容易算出,抽第一个角色时,由于我们尚未拥有卡池中的任何角色,因此无论抽到哪个角色都是新角色,因此期望支付1个廿连;

抽第二个角色时,已经拥有卡池中的一个角色,考虑到重复角色的情况,期望支付的廿连数量变为。计算过程如下:

我们已经有了一个角色,根据获得各角色的概率相等这一前提条件,此时再获得一个随机角色,与之相同的概率是,与之不同的概率是,由此期望支付的廿连数量为,其中:

这是一个差比数列的前n项和,高中数学课中应当提到过其求和方法。易知:

于是有:

.

同理,抽第三个角色时期望支付个廿连,抽第n个角色时期望支付个廿连,直到抽第48个角色时期望支付48个廿连。

把这些数加起来,可知整个过程中期望支付约214个廿连,即428个十连。折合约385240 NTD,或是88138.90 CNY。四舍五入一下,大概是九万。

需要指出的是,上述计算结果仅代表平均情况。例如,现在有10000个玩家想要从没有任何角色的状态通过纯抽扭蛋达到角色全收集的状态,那么他们的总开销大约是;但是,对于单个玩家而言,实际花费的货币很可能会超过九万不少。

计算C:正常抽卡+吃保底(蒙特卡罗方法模拟)

下面,考虑一种更接近实际玩家的情况:在抽扭蛋过程中可以抽到一些角色;同时,还用获得的信仰点数定向兑换一些角色。此时,情况较为复杂,我们不妨直接用蒙特卡罗方法模拟一下这个过程。相比于仅计算数学期望,我们可以通过模拟结果得到更多信息:例如,当投入多少资金时,可以令角色全收集的概率不低于95%。在笔者看来,对于单个普通玩家而言,这个参数比数学期望更有价值。

那么我们就来写代码吧,语言方面,使用Python 3就可以了。

上面的代码可以将试验结果写入同目录下的result.csv文件中(多次运行时需要手动删除之前运行生成的result.csv,否则会直接把新的数据追加写入到原文件后)。

为了方便分析数据,我们还需要再写一段用来绘制统计图表的代码:

那么,我们来看看运行的结果如何吧。需要注意的是,下面的直方图中,横轴表示的是角色全收集时进行的十连抽次数;例如,横轴上的200表示进行200次十连抽,即2000抽。

这是TEST_NUM设置为4096时,生成的直方图:

TEST_NUM=4096

以及,这是TEST_NUM设置为100000时,生成的直方图:

TEST_NUM=100000

我们不妨取250这个具有代表性的分界点来进行讨论;根据对试验结果的分析,当十连抽次数达到250时,我们有98%以上的把握实现角色全收集。折合为225000 NTD,或是51477.64 CNY。开销大约是五万。相比于前面的计算结果,算是一个相对令人满意的结果。

结论

本文以计算雀魂寻觅全角色的预期开销为例,复习了数列求和,数学期望计算,蒙特卡罗方法等知识点,并编写了相应的代码,保持了写代码的手感,有效避免了笔者由于短期内接触代码较少而导致的生疏问题。同时,对角色全收集开销的计算也能够为有相关意向者提供指导,有助于雀友们量力而行,合理消费。

插图索引,表格索引,参考文献

懒得写了啦。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有