米哈游笔试概率题(阅读理解!!!)

第三道题考试没做出来,今天网上找到原题描述,才发现是理解有误。

题意

题目背景为元神和星穹铁道的抽卡系统,我也不玩,根本不懂什么大保底机制。
务必理解:当抽到常驻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。

posted @ 2023-08-14 11:50  izcat  阅读(589)  评论(2编辑  收藏  举报