米哈游笔试概率题(阅读理解!!!)
第三道题考试没做出来,今天网上找到原题描述,才发现是理解有误。
题意
题目背景为元神和星穹铁道的抽卡系统,我也不玩,根本不懂什么大保底机制。
务必理解:当抽到常驻5星后,触发了大保底机制,以后每抽一发有p的概率抽到当期5星,其余的1-p概率不出5星。
再结合题意,一定要明白:89次未抽中,必然下一次能抽中五星(抽中触发大保底的常驻5星或者抽中需要的当期5星)。在大保底机制下,89次未抽中五星,最后一次必为当期5星。
题目来源
分析
先计算进入大保底机制后,抽中当期5星的次数期望。
为方便理解,用假五星表示常驻5星,真五星表示当期5星。
状态转移图:
graph LR
subgraph 大保底机制
假五星 --> |1-p| 未抽中
假五星 --> |p| 真五星
未抽中 --> |1-p| 未抽中
未抽中 --> |p| 真五星
end
大保底机制:以后每抽一发有p的概率抽到当期5星,其余的1-p概率不出5星。
当连续未抽中89次后,若已触发了大保底机制,则100%概率抽到当期5星。
也就是说,最多抽90次。那么可以算期望了,而不是一个无穷级数求和。
大保底机制下的期望次数
\[E\_fake = E(cnt_{大保底}) = \sum_{k=1}^{90} p(第k次抽中真五星) * k
\]
p = 0.006
# 大保底机制情况下 抽中当期5星的期望
E_fake = 0.0
for i in range(89):
E_fake += (i+1) * (1-p)**i * p
# 第90次一定抽中
E_fake += 90*(1-p)**89
再来看,未触发大保底机制的状态转移图。图中数字表示抽卡次数,当抽到第90次时,下次一定会抽中5星。
graph LR
1 --> |1-p| 2
2 --> |1-p| ... --> |1-p| 90
1 --> |p/2| 大保底
2 --> |p/2| 大保底
90 --> |1/2| 大保底
1 --> |p/2| 真五星
2 --> |p/2| 真五星
90 --> |1/2| 真五星
此时,我们可以利用大保底机制下计算好的期望次数来计算总的次数。
\[E(cnt_{抽中真五星}) = \sum_{k=1}^{90} p(第k次抽中真五星) * k + p(第k次进入大保底) * (k+E\_fake)
\]
其中,第90次抽卡需要单独处理概率。
E_true = 0.0
for i in range(89):
# 连续i次未抽中 然后再抽中
E_true += (i+1) * (1-p)**i * (p/2)
# 连续i次未抽中 然后再抽中当期
E_true += (i+1+E_fake) * (1-p)**i * (p/2)
# 第89次未抽中 第90次一定抽中五星
E_true += (89+1+E_fake)*(1-p)**89*0.5 + (89+1)*(1-p)**89*0.5
print(E_true) # 104.54970566412015
样例给出 p=0.006,参考答案为104.5497057。