欢迎光临散文网 会员登陆 & 注册

连续N次十连抽卡中,存在连续至少M(M≤N)次十连都不出最高稀有度卡的概率

2022-11-20 21:17 作者:涼风_青叶  | 我要投稿

问题描述

        考虑这一种抽卡系统:每进行一次叫做“十连抽卡”(也可能是十一连,不过后面统称为“十连”)的操作,就有1-p(0%3Cp%3C1)的概率抽出“最高稀有度的卡”(具体到某种抽卡系统中,它可能被叫做“UR卡”“SSR式神”“四星卡”“五星从者”“六星干员”等等),当然,也就有p(0%3Cp%3C1)的概率抽不出“最高稀有度的卡”。

        现在在这个系统中抽卡NN是正整数)次,考虑这样的一个事件:在这连续的N次抽卡中,存在连续的至少MM%5Cleq%20N,并且M也是正整数)次“十连抽卡”(比如说,这N次抽卡中的第4,5,6,7,…,M+3次抽卡),使得这M次抽卡都没有抽出“最高稀有度的卡”,或者在下文中简称,没有“出货”。

        本文给出了该问题以矩阵形式表示的解,并给出了部分具体问题中,该问题的数值解。

求解过程

1.“没出十连次数计数器”

        在进行这N次“十连抽卡”的过程中,假想我们在同时操作一个“没出十连次数计数器”(后简称“计数器”)。计数器在这N次“十连抽卡”开始前的初始值为0,随后每抽一次十连,如果没出最高稀有度的卡,就把计数器的值%2B1;如果出了最高稀有度的卡,就把计数器的值重置为0。以一次N%3D10的抽卡为例:

        这个计数器将帮助我们统计“最多有连续几次十连没出货”,在这个问题中,我们只关心计数器曾到达过的最大值是多少。原题所要求的是“存在连续至少M次十连不出货的概率”,其实也就等价于,“计数器曾到达过的某个值≥M的概率”。

2.定义关于计数器的数列{Mn},考察Mn随n的变化规律

        接下来我们定义数列%5C%7Bc_n%5C%7D为抽卡次数为n(0%5Cleq%20n%5Cleq%20N)时,计数器所显示的数字;由递推关系再定义一关于c_n的数列:

M_n%3D%5Cleft%5C%7B%5Cbegin%7Balign%7D%26M%2CM_%7Bn-1%7D%3DM%5C%5C%26c_n%2Celse%5Cend%7Balign%7D%5Cright.

        原题要求“计数器曾到达过的某个值≥M的概率”,也就等价于“M_N%3DM的概率”。因为当%5Cexists%20n%2Cc_n%5Cgeq%20M时,就意味着%5Cexists%20n'%5Cleq%20n%2Cc_%7Bn'%7D%3DM%2Cc_%7Bn'-1%7D%3DM-1,于是M_%7Bn'%7D%3DM%5Cimplies%20%5Cforall%20i%5Cgeq%20n'%2CM_i%3DM%5Cimplies%20M_N%3DM。反过来,如果已知M_N%3DM,则必然%5Cexists%20n%5Cleq%20N%2Cs.t.%20%20M_%7Bn-1%7D%3DM-1%2CM_n%3DM,于是c_n%3DM%5Cgeq%20M。两个条件可以相互推出,因此相互等价。

        现来考虑P(M_%7Bn%2B1%7D%3Di%7CM_n%3Dj)的值,即在已知M_n%3Dj的情况下,式M_%7Bn%2B1%7D%3Di成立的概率。我们将分j%3DMj%3CM两种情况来讨论。

        当j%3DM时,显然有:

%20P(M_%7Bn%2B1%7D%3Di%7CM_n%3Dj)%3D%5Cleft%5C%7B%5Cbegin%7Balign%7D1%2Ci%3DM%5C%5C0%2Ci%5Cneq%20M%5Cend%7Balign%7D%5Cright.

        当j%3CM时,由M_n%5Cneq%20M容易推出M_0%2CM_1%2C%E2%80%A6%2CM_%7Bn-1%7D%5Cneq%20M,因此M_i%3Dc_i%2Ci%3D0%2C1%2C2%2C%E2%80%A6%2Cn。又因为M_n%5Cneq%20M%5Cimplies%20M_%7Bn%2B1%7D%3Dc_%7Bn%2B1%7D(否则M_%7Bn%2B1%7D%5Cneq%20c_%7Bn%2B1%7D%5Cimplies%20M_%7Bn%2B1%7D%3DM%2C%20c_%7Bn%2B1%7D%5Cneq%20M,由M_n%5Cneq%20MM_n%3Dc_n%3DM-1,故c_%7Bn%2B1%7D不能为M只能为0,又与M_%7Bn%2B1%7D%3DM矛盾),所以:

P(M_%7Bn%2B1%7D%3Di%7CM_n%3Dj)%3DP(c_%7Bn%2B1%7D%3Di%7Cc_n%3Dj)%3D%5Cleft%5C%7B%5Cbegin%7Balign%7Dp%2C%5C%20%26i%3Dj%2B1%5C%5C1-p%2C%5C%20%26i%3D0%5C%5C0%2C%5C%20%26else%5Cend%7Balign%7D%5Cright.

3.状态,概率分布与转移矩阵

        我们知道M_n只能在%5C%7B0%2C1%2C2%2C%E2%80%A6%2CM-1%2CM%5C%7DM%2B1个正整数中取值。我们把这些值叫做M_n所处的状态

        对于值M_n,我们定义一个M%2B1维的向量p_n%3D(p_%7Bn0%7D%2Cp_%7Bn1%7D%2Cp_%7Bn2%7D%2C%E2%80%A6%2Cp_%7BnM%7D),称作M_n概率分布,其中p_%7Bni%7D(i%3D0%2C1%2C2%2C%E2%80%A6%2CM)M_n的值取i的概率大小。自然,p_0%3D(1%2C0%2C0%2C%E2%80%A6%2C0)(有M0)。

        再定义(M%2B1)(M%2B1)列的,M_n转移矩阵如下:

P%3D%5Cleft(%5Cbegin%7Balign%7D%0A1-p%20%26%26%20p%20%26%26%200%20%20%26%26%20%E2%80%A6%20%26%26%200%20%26%26%200%5C%5C%0A1-p%20%26%26%200%20%26%26%20p%20%26%26%20%E2%80%A6%20%26%26%200%20%26%26%200%5C%5C%0A%E2%80%A6%20%26%26%20%E2%80%A6%20%26%26%20%E2%80%A6%20%26%26%20%E2%80%A6%20%26%26%20%E2%80%A6%20%26%26%20%E2%80%A6%5C%5C%0A1-p%20%26%26%200%20%26%26%200%20%26%26%20%E2%80%A6%20%26%26%200%20%26%26%20p%5C%5C%0A0%20%26%26%200%20%26%26%200%20%26%26%20%E2%80%A6%20%26%26%200%20%26%26%201%0A%5Cend%7Balign%7D%5Cright)

        位于这个矩阵的第j%2B1行第i%2B1列的元素的值,就是P(M_%7Bn%2B1%7D%3Di%7CM_n%3Dj)的值。

        因此我们有递推关系:p_%7Bn%2B1%7D%3Dp_nP。该问题的答案即

p_n%3Dp_0P%5EN

的最后一个元素的值,或者说,位于矩阵P%5EN最右上角的值。问题到此解决。很遗憾,这个问题的答案并不能用简单的公式表示,大多数时候也不能手算。

实际情景

1.公式验证

        我们首先用一个简单的情形验证答案的正确性。连抛5次正面朝上概率为二分之一的硬币,则结果中存在连续至少两次正面朝上的概率是多少?

        这个问题可以手算。连抛5次硬币,共有2%5E5%3D32种可能的结果。反面朝上次数为0或1时,结果一定符合题意(证略)。反面朝上次数为2时,有且仅有“正反正反正”1种结果不合题意。反面朝上次数为3时,有“正反正反反”“正反反正反”“正反反反正”“反正反正反”“反正反反正”“反反正反正”共6种结果不合题意。反面朝上次数为4或5时,结果一定不合题意,其中,反面朝上次数为4的结果有5种,朝上次数为5的结果有1种。因此,问题的答案是:

1-%5Cfrac%7B1%2B6%2B5%2B1%7D%7B32%7D%3D%5Cfrac%7B19%7D%7B32%7D

        再用本文提到的方法计算。把“硬币正面朝上”看作是“没出货”,取:

p%3D%5Cfrac%7B1%7D%7B2%7D%2CN%3D5%2CM%3D2

P%3D%5Cleft(%5Cbegin%7Balign%7D%0A0.5%20%26%26%200.5%20%26%26%200%5C%5C%0A0.5%20%26%26%200%20%26%26%200.5%5C%5C%0A0%20%26%26%200%20%26%26%201%0A%5Cend%7Balign%7D%5Cright),由此可得:

P%5EN%3D%5Cleft(%5Cbegin%7Balign%7D%0A%5Cfrac%7B1%7D%7B4%7D%20%26%26%20%5Cfrac%7B5%7D%7B32%7D%20%26%26%20%5Cfrac%7B19%7D%7B32%7D%5C%5C%0A%5Cfrac%7B5%7D%7B32%7D%20%26%26%20%5Cfrac%7B3%7D%7B32%7D%20%26%26%20%5Cfrac%7B3%7D%7B4%7D%5C%5C%0A0%20%26%26%200%20%26%26%201%0A%5Cend%7Balign%7D%5Cright)

        该矩阵最右上角的值正是%5Cfrac%7B19%7D%7B32%7D,与我们手算得到的答案一致,因此这个计算方法是正确无误的。

2.程序编写

        由于计算过于复杂,我们首先编写一段Python程序替代人工进行计算并输出结果。程序中N、M、p的含义都与上文相同。

        通过以下代码,再次计算前文提到的抛硬币问题:

        得到输出:

        0.59375就是%5Cfrac%7B19%7D%7B32%7D的小数形式,可见该程序工作正常。

3.投入实战

        对于“连续不出货问题”,现在不但有了经验证的理论,还根据理论编写好了程序。万事俱备,现在我们可以尝试解决一些真实的抽卡问题了。当然,这里假设所有游戏的抽卡系统都乖乖采用了宇宙无敌真随机算法来决定抽卡结果,至少,也得看起来像是独立事件。

3.1  在《阴阳师》中,从零开始用10000张蓝票达成大阴阳师成就的概率

        《阴阳师》中最高的稀有度为SSR。根据已知信息:大阴阳师成就需要连续500次蓝票抽卡不出SSR,而《阴阳师》每次蓝票抽卡抽出SSR的概率是1%,即不出货的几率为0.99。

        根据题目条件,编写并运行如下代码:

        输出结果为:

        即,能用10000张蓝票从零开始达成大阴阳师成就的概率,大概是47.9%。另外,如果蓝票数量缩减到5000,2000,1000张,则达成概率会分别缩减到约26.8%,10.3%,3.9%。约35K张蓝票可以保证90%以上的达成率。

        尽管问题的答案是一个定值(甚至可以确定是一个有理数),但依靠程序求出其准确值实在是很困难,只好求其近似值。好在近似值也大概够用。

3.2  在《BanG Dream!》《世界计划》等游戏中,如果连续抽十连20次,那么出现连续几次以内的“不出彩”是正常的?

        《BanG Dream!》和《世界计划》本来是两款完全不同的游戏,但正好两款游戏的最高稀有度都是4星(彩色),且单抽出彩色的概率都恰好是3%(Fes活动期间可以是6%),所以放在一起讨论。

        首先考虑任意一次十连不出彩的可能性。一次十连抽出的每一张卡是不是彩色,都是独立事件,因此十连不出彩的可能性是(1-3%5C%25)%5E%7B10%7D%5Capprox%2073.7%5C%25,或者在Fes活动期间为(1-6%5C%25)%5E%7B10%7D%3D53.9%5C%25

        我们运行如下代码进行计算:

        输出结果:

        不知道这和邦邦人与豆腐人们的体感是否符合呢。顺便对于Fes活动期间的抽卡,运行如下代码:

        输出结果为:

        那在几次以内的“十连不出彩”是正常的呢?这取决于确定“正常”与“不正常”的界线位于何处。比如说,假定发生了概率在5%及以上的事件算是“正常”的话,那么,非Fes期间连续13次十连无彩,Fes期间连续7次十连无彩,都是“正常”的。

        为了方便大家比对自身情况,这里给出两份更具体的表格。

平时(非Fes期间),单抽出彩概率为3%
Fes活动期间,单抽出彩概率为6%

结语

        本篇专栏实际上通过随机过程中与马尔科夫链有关的理论,解决了“连续抽卡无彩”问题,欢迎同好们批评指正,也希望能够帮助到大家。■

连续N次十连抽卡中,存在连续至少M(M≤N)次十连都不出最高稀有度卡的概率的评论 (共 条)

分享到微博请遵守国家法律