蒙特卡罗(Monte Carlo)法
又称统计实验法,是以概率论和数理统计为指导的模拟方法。
它的实质是运用一连串的随机数来模拟可能出现的随机现象,即为了求解确定的数学问题,要构造一个与原来的问题没有直接关系的概率过程,并利用其产生统计现象的方法。
其基本思路是通过构造概率模型,确定抽样总数、并产生一系列满足该概率分布的随机数,随后通过统计和计算,得出求解问题的数字特征和概率值等结果。
def monte_carlo(pro):
sample = 100000 # 确定抽样总数
count = 0 # 出现的次数
for i in range(sample): # 产生一系列满足该概率分布的随机数
r = random.random()
# 通过统计和计算,得出求解问题的数字特征和概率值等结果
if r <= pro:
count += 1 # 得出求解问题的数字特征
res = count / sample # 概率值
return res
用频率估计概率。
参考:
https://wiki.mbalib.com/wiki/%E8%92%99%E7%89%B9%E5%8D%A1%E7%BD%97%E6%96%B9%E6%B3%95