前几天看到一个求概率的问题,问题如下:
一道从炉石传说游戏中提出的概率问题?对面有两个目标,一个2点血,一个有30点血,我现在依次发射3枚导弹,每发导弹可造成1点伤害。那么我3发导弹发射完,对面2点血目标死亡的概率是多少。
这个问题当时想了很久,一直确定不了,,自己用程序暴力破解了一下,结果是1/2,程序如下:
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,程序如下:
image.png
后来自己用二叉树画了一下,结果确实是1/2:
image.png同时可以看出来,一点血都没掉的概率是1/8,挨了一枪的概率是3/8
网友评论