首页 > 其他分享 >米哈游笔试概率题(阅读理解!!!)

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

时间:2023-08-14 11:55:25浏览次数:47  
标签:保底 五星 概率 -- 笔试 米哈 89 抽中 90

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

题意

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

标签:保底,五星,概率,--,笔试,米哈,89,抽中,90
From: https://www.cnblogs.com/izcat/p/17628251.html

相关文章

  • 测试开发笔试题(python)
    测试开发笔试题(python)_测试开发python笔试题_coco_qa的博客-CSDN博客1、字符串相关1.1字符串中最大长度子串#字符串中最大长度子串#如字符串abcd13agbf,当重复出现某个字符时,算一个子串,比如abcd13a或bcd13agb都是子串str1='abcd13agbf'str_list=[]foriinrange(l......
  • [学习笔记] 概率 & 期望
    一、一些定义注:以下定义并非严谨定义,只是便于理解。\(P(A)\):事件\(A\)发生的概率。\(E(X)\):随机变量\(X\)的期望值,有公式\(E(X)=\displaystyle\sum_{w}w\timesP(X=w)\)。独立事件:两个事件\(A,B\)发生没有关联,有\(P(A\wedgeB)=P(A)\timesP(B)\)......
  • 【Java】美团8.12笔试复盘
    5道编程题2小时如果您看到哪里有问题,万望评论区指正,在此谢过!!!第一题:数组遍历importjava.util.Scanner;publicclassNextNumbers{/*题目:给你一个排列和两个数问你:这两个数在排列里是不是相邻输入:第一行:n代表排列中数的个数第二行:a1--an......
  • 某公司笔试题 - 坐标移动(附python代码)
    #开发一个坐标计算工具,A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动。从(0,0)点开始移动,从输入字符串里面读取坐标,并将最终输入结果输出文件里面。#输入坐标为A(或D或W或S)+数字(两位以内)。坐标之间以;分隔#数据范围:1<=n<=10000每组输入的字符串长度坐标保证满足-......
  • 某公司笔试题 - 求int型正整数在内存中存储时1的个数(附python代码)
    #输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数。#数据范围:保证在32位整型数字范围内num=int(input("请输入一个正整数:"))#将输入的正整数转化成二进制num_bin=bin(num)print(num_bin)#将二进制字符串转化成数组nbl=list(num_bin)iflen(nbl)>0and......
  • 某公司笔试题 - 字符串排序(附python代码)
    #给定n个字符串,请对n个字符串按照字典序排列。#数据范围:1<=n<=1000,字符串长度满足1<=len<=100times=int(input("请输入字符串的个数:"))iftimes>=1andtimes<=1000:dicts={}print("请输入字符串,回车键切换输入下一个字符串:")foriinrange(......
  • 某公司笔试题 - 句子逆序(附python代码)
    #将一个英文语句以单词为单位逆序排放。例如“Iamaboy”,逆序排放后为“boyaamI”,所有单子之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符#数据范围:输入的字符串长度满足1<=n<=1000importrestr1=input("请输入一个英语句子:")#通过正则匹配输入英......
  • 某公司笔试题 - 字符串反转(附python代码)
    #接受一个只包含小写字母的字符串,然后输出该字符串反转后的字符串。(字符串长度不超过1000)importrestr1=input("请输入一个只有小写字母的字符串:")#通过正则表达式只匹配输入字符串中的小写字母str2=re.sub('[^a-z]','',str1)print(str2)iflen(str2)>0andlen(str2)......
  • 某公司笔试题 - 字符个数统计(附python代码)
    #编写一个函数,计算字符串中含有的不同字符的个数,字符在ASCII码范围内(0~127,包括0和127),换行表示结束符,不算在字符里,不在范围内的不作统计。多个相同的字符只计算一次。#例如:对于字符串abaca而言,有a,b,c三种不同的字符,因此输出3#数据范围:1<=n<=500str1=input("请输入一个字......
  • 某公司笔试题 - 提取不重复的整数(附python代码)
    #输入一个int型整数,按照从右往左的阅读顺序,返回一个不含重复数字的新的整数。保证输入的整数最后一位不是0.#数据范围:1<=n<=10**8#输入一个整数并去掉末尾的0num_str=input("输入一个整数:").rstrip('0')ifint(num_str)>=1andint(num_str)<=10**8:#把输入的......