前几天看到一个求几率的问题,问题以下:python
一道从炉石传说游戏中提出的几率问题?对面有两个目标,一个2点血,一个有30点血,我如今依次发射3枚导弹,每发导弹可形成1点伤害。那么我3发导弹发射完,对面2点血目标死亡的几率是多少。dom
这个问题当时想了好久,一直肯定不了,,本身用程序暴力破解了一下,结果是1/2,程序以下:code
import random n = 100000000 # 总共进行n次试验 m = 0 # a死亡的次数 for i in range(1,n+1): a = 2 # a的血量 b = 30 # b的血量 for j in [1,2,3]: # 发射3颗子弹 if random.random()>0.5: # 子弹命中a的几率都是0.5 a -= 1 if a == 0 : # a 死亡 m += 1 break if i%100000==0: print('事件次数:',i,'a死亡次数:',m,'几率:',m/i)
这个问题当时想了好久,一直肯定不了,,本身用程序暴力破解了一下,结果是1/2,程序以下: 游戏
后来本身用二叉树画了一下,结果确实是1/2:事件
同时能够看出来,一点血都没掉的几率是1/8,挨了一枪的几率是3/8class