脑力小体操:华尔街的校招面试题之二
majer @ 2021.02.14 , 01:08
因为上期的各种答案,字数有点多,为了避免头重脚轻,把第二期花街面试题放到最前面。
话说某投行老板家里有个泳池,这一天,老板还上中学的儿子要在自家泳池里做个科学课小实验,好完成网课作业。
有一个充好的小气球,气球下面有根线,线的另一头系着一个小砝码。小朋友把气球和砝码小心翼翼地放入泳池。
当水恰好没过气球之后,气球+砝码重物就悬浮在那里。说明此时气球+砝码的平均密度和水相当。
现在,小朋友用手轻轻地、缓慢但又坚定地向下压气球,气球向下位移一段距离后——此时砝码还未触底,再把手拿开。
现在问:气球+砝码会如何运动?
给出选项
A 气球向上运动,砝码向下运动;
B 气球砝码同步向上,回到最开始悬浮的位置;
C 气球砝码悬浮在当前位置;
D 气球砝码持续下沉,直到砝码触底
上一期 华尔街的校招面试题之一
已知一个黑箱里有10个红球、20个白球、30个蓝球。它们除了颜色之外,其它方面都一模一样。我们每次可以伸手进去取出一个球,当然自己看不到所取球的颜色。
问:依次取球的时候,红球最先被取完的概率是多少?
就像很多评论指出的,这个问题来自微博上的万精油老师。原本有5道概率,但是我之后仅会再选用1道。
答案
Nitrome:
7/12,考虑最后一个球的颜色倒推就很简单。最后一个球是白球的概率为1/3,再抛开白球考虑剩下40个球的排序,蓝球排在最后的概率为3/4,3/4*1/3=1/4。再考虑最后一个球为蓝球的情况,1/2*2/3=1/3。1/4+1/3=7/12就是红球先取出的概率。
Wind 直接用程序验证了上面的答案:
简单粗暴python跑了1000000遍,概率是0.5837575757575758,对照上面大家给的答案,7/12最接近。
import random
c=['红']*10+['白']*20+['蓝']*30
noRedTime,noWhiteTime,noBlueTime=0,0,0
for i in range(1000000):
if(i>0 and i%10000==0):
print(noRedTime,noWhiteTime,noBlueTime,noRedTime/(noRedTime+noBlueTime+noWhiteTime))
r,w,b=10,20,30
while r>0 and w>0 and b>0:
k=random.choice(c)
#print(k)
if k=='红':
r-=1
elif k=='蓝':
b-=1
else:
w-=1
c.remove(k)
if r==0:
noRedTime+=1
elif b==0:
noBlueTime+=1
else:
noWhiteTime+=1
c=['红']*10+['蓝']*30+['白']*20
ID为 ALEX的朋友 写了详细的分析过程,但是因笔误反复修改,回复了很多字,花了很多时间,所以特别也摘录到这里
卧槽 还是有点失误 C(5,2)那步算错了
假设从一红球,二白球,三蓝球中先取出红球的概率同原问题等价
从6个位置中取出1个位置来表示红球所在位置的组合,从剩下5个位置取出
两个位置来表示白球所在位置的组合,共有C(6,1)*C(5,2)=60种组合
当红球在第三个位置时,从位置1~2取出n个白球,位置4~6取出3-n个白球
则先取出白球的组合为C(2,2)*C(3,0)
类似的,当红球在第n个位置时,先取出白球的组合为An=C(n-1,2)*C(5-(n-1),0)
先取出篮球的组合为Bn=C(n-1,3)*C(5-(n-1),0)
当n=3时,A3=C(2,2)=1
当n=4时,A4=C(3,2)=3,B4=C(3,3)=1
当n=5时,A5=C(4,2)=6,B4=C(4,3)=4
当n=6时,A5=B5=C(5,2)=10
先取出红球的概率为(120-sum(An+Bn))/60=7/12
赞 (0)