问题源于一到概率题目。
如下:
可以用概率的方法来做,比如和事件,逆事件,这里直接用模拟的方法,假设可以发射10000次, 结果自然就可以知道。
#---------------------------------------------------------#
#---- *模拟炮火的小程序 * ----#
#---------------------------------------------------------#
import numpy as np
num_fire = 10000
num_of_cannon = 6
def cannon(num_of_cannon, num_fire):
Fire = np.zeros(shape=( num_of_cannon, num_fire))
for i in range(num_of_cannon):
canon_one = np.random.choice(a=[0, 1], size=num_fire, replace=True,p=[0.4, 0.6])
Fire[i] = canon_one
print(Fire.shape)
result = np.sum(Fire, axis=0)
prob =1 - sum(np.where(result,0, 1))/ 10000
print("the {} of cannon got prob of : {} ".format(num_of_cannon, prob))
cannon(6, 10000)
cannon(5, 10000)
cannon(4, 10000)
cannon(3, 10000)
cannon(2, 10000)
结果如下