蔚蓝档案吧 关注:142,852贴子:2,591,451

关于ba同期多up卡池的混合抽卡概率计算(包含歪)

只看楼主收藏回复

很多抽卡规划都喜欢拿期望来说事,其实期望是个很不靠谱的东西,之前验证了下,在期望抽数内抽出一个池子里的up角色的概率其实只是在0.5附近,这个其实也在某种程度上挺符合期望本身的定义,我们更关心的其实应该是我抽多少个十连,有80%,90%这样子的概率能出,这样才算是最稳妥的规划。
之前在一个帖子里水过另一个问题:多期池子,每期只抽最多一个角色,总共抽m个角色,n*10抽之内能出的概率,本帖解决另一个问题:同期池子,要抽m个up角色,n*10抽能出的概率,相比上一个问题,同期的多up池子就是会出现多轮兑换以及相互歪的情况,多轮兑换其实可以经过算正常抽的概率然后进行抽数偏移来计算。
关于歪,直观想这个计算过程会很复杂,因为当前歪的结果会影响后续的抽卡,但是在抽卡的流程中这个概率组合不会变,也就是当前池子的0.007up率和0.023/(v-1)*k的歪率组成,其中v为当前三星角色总数,k是同期其他池子up角色中你未拥有的角色数量,抽的过程中池会变,概率的构成不变。
楼主是计算机专业的,就直接直叙了,dp[i][j]表示j*10抽后状态为持有i个的概率,这i个可能全是歪的(相对于你当前在抽的池子),可能是1个up和i-1个歪,特别的,i=m的时候只能是1个up和m-1个歪,不可能抽满所有卡全靠歪的,那就相当于你选选择了不是你要抽的那个角色的池子,那就牺牲了概率。dp[i][j]可以由dp[i][j-1]转移来,也就是最新的十抽没有抽出任何新的角色,也可以由dp[i-k][j-1]转移来,相当于最新的十抽抽出了k个之前没抽到的角色的概率,其中可以有歪有up。
这里面有个比较复杂的问题,就是比如10抽中抽出至少1个a,1个b,1个c,这样的概率,它不是抽出至少一个a或一个b或1个c这样简单的容斥减一下就能算出来,这个问题有个学名叫赠券收集问题,这个算起来比较麻烦,这里的a,b,c相当于up的卡或者是歪的卡,up的概率和歪的概率也不一样也增大了这个问题计算的复杂程度,但是毕竟十抽10这个数据量很小,可以直接枚举10的拆分进行计算,比如10中出了2个up,歪了2个a,歪了2个b的概率就是C(10,2)*C(8,2)*C(6,2)*p(up)^2*p(歪)^4*p(其他)^4,这里的其他不仅可以是非up的角色,而且也可以是你已经抽到过的up角色,这个概率只和你抽到过的up数量有关系所以完全是可以计算的,另外这里歪的卡片也是需要乘上一个组合数的,如果你当前还有4个角色没抽到,你当前在抽的up占一个,歪的可能性还要再乘一个C(3,2),好了也不像啰嗦太多,直接上代码和结果吧
n = 40
m = 2
v = 31
p1 = 0.007
p2 = 0.023
ls = []
p_s = 0
import math
# ls里全部为歪的卡片数量
def g(ls, x):
sz = sum(ls)
t = 1
e = 10
for it in ls:
t *= math.comb(e, it)
e -= it
res = t * ((p2 / (v - 1)) ** sz) * ((1 - p1 - p2 / (v - 1) * (m - 1 - x)) ** (10 - sz))
return res
# ls[0]为up的卡片数量
def h(ls, x):
sz = sum(ls[1:])
t = 1
e = 10
for it in ls:
t *= math.comb(e, it)
e -= it
res = t * (p1 ** ls[0]) * ((p2 / (v - 1)) ** sz) * ((1 - p1 - p2 / (v - 1) * (m - 1 - x)) ** (10 - ls[0] - sz))
return res
def f(s, new, d, x, p):
global ls, p_s
if d == 0:
p_s += math.comb(m - 1 - x, new - 1) * h(ls, x)
if p:
p_s += math.comb(m - 1 - x, new) * g(ls, x)
return
for i in range(1, s - d + 2):
ls.append(i)
f(s - i, new, d - 1, x, p)
ls.pop()
# dp[i][j]表示j个十连抽后状态为持有i个的概率
dp = [[0 for i in range(n + 1)] for j in range(m + 1)]
dp[0][0] = 1
for i in range(m + 1):
for j in range(1, n + 1):
if i != m:
dp[i][j] = dp[i][j - 1] * ((1 - p1 - p2 / (v - 1) * (m - i - 1)) ** 10)
else:
dp[i][j] = dp[i][j - 1]
# print(i,j,dp[i][j])
if i >= 1:
for k in range(1, min(11, i + 1)):
p_s = 0
if i == m:
f(10, k, k, i - k, False)
else:
f(10, k, k, i - k, True)
# 10连抽抽出k个新的
dp[i][j] += dp[i - k][j - 1] * p_s
for i in range(n + 1):
s = 0
x = max(0, m - i // 20)
for j in range(x, m + 1):
# print(i,j,dp[j][i])
s += dp[j][i]
print(f"{i}个十连出完{m}个同期up的概率:{'{:.4f}'.format(s)}")
这张图是统计的国服下期v=31也就是31个三星的歪率下抽出水依织和水hina的概率表

下图是不考虑歪率的情况下的概率表(直接把v调成很大算的),可以看出概率会有2%左右浮动的影响量

可以看出就当歪不存在的话,330抽是有九成的概率能抽完的,虽然楼主上次是380捏,可以去brightsu的抽卡模拟器里抽试一下,90概率分界线的话,大概率330抽之内是能出两个的,国服大概率300抽之内出俩。
顺手算一下之前国际服的五up池子的概率,我不知道当期国际服有多少个三星角色了,当100来算的



可以看到3井的时候可以达到90%的概率全拿,一井有5.6%的概率,不会真有一井new完五个的欧皇吧,数据仅供参考,毕竟非起来还是不当人


IP属地:江苏1楼2023-12-06 11:47回复
    1井出4个up就够了,200换1个
    1井5up


    IP属地:广东来自Android客户端2楼2023-12-06 12:15
    收起回复
      2025-05-16 18:01:58
      广告
      图1可以看出目前国服的卡池数量抽一井一也是有79%的概率的,不止是不考虑歪的75.46%,毕竟就算是0.0005的歪率,1-(1-0.0005)^200也有近10%了,希望下次小夏亚子池能抽一井一吧


      IP属地:江苏来自Android客户端3楼2023-12-06 12:20
      回复
        1/4的人抽0井1概率也不小了


        IP属地:福建来自Android客户端4楼2023-12-06 12:53
        收起回复
          巨佬可以发个b站了可以用蒙特卡洛法验证一下这个动规


          IP属地:湖南来自Android客户端5楼2023-12-06 13:02
          收起回复
            算来算去最后200兑换


            IP属地:江苏来自Android客户端6楼2023-12-06 13:20
            收起回复
              这是真老师


              IP属地:广东来自iPhone客户端7楼2023-12-06 13:40
              回复
                多up一般都是复刻池子,萌新一般只能选一到两个强力的抽


                IP属地:上海来自Android客户端8楼2023-12-06 14:07
                收起回复
                  2025-05-16 17:55:58
                  广告
                  好贴


                  IP属地:福建来自Android客户端9楼2023-12-06 14:09
                  回复
                    一般2up很好计算 记p=当期up总出货率 求出n使得(1-p)^n < 0.1 取对数就能得到要多少抽能够0.9的概率抽一井1了


                    IP属地:吉林来自Android客户端10楼2023-12-06 14:52
                    收起回复
                      吃井率大概是四分之一,抽0井2几率是多少呢,我记得是30分之一左右?


                      IP属地:四川来自Android客户端11楼2023-12-06 15:49
                      收起回复
                        不管算出来概率多高,落到自己身上只可能是0或1


                        IP属地:四川来自Android客户端12楼2023-12-06 15:54
                        收起回复
                          默认井就玩了,玩了这游戏我现在一直在井,算也没用,谁知道会不会暗改概率呢


                          IP属地:广东来自Android客户端13楼2023-12-06 16:08
                          收起回复
                            是概率的胜利


                            IP属地:湖南来自Android客户端14楼2023-12-06 16:45
                            回复
                              2025-05-16 17:49:58
                              广告


                              IP属地:湖南来自Android客户端15楼2023-12-06 16:56
                              回复