美文网首页生物信息学与算法小教程收藏
蒙特卡洛随机方法/模拟(Monte Carlo method)

蒙特卡洛随机方法/模拟(Monte Carlo method)

作者: 生信编程日常 | 来源:发表于2020-03-16 20:44 被阅读0次

蒙特卡洛随机方法,即统计模拟方法,是一类以概率统计理论为指导的数值计算方法。本质上是用部分估计整体,采样越多,则越近似最优解。

最常见最经典的例子是求圆周率pi的值。如下图所示:


example

正方形内有一内接圆,假如圆的半径为r,则圆与正方形的面积比为pi/4。假如我们向这个正方形内撒石子,撒很多次,且这些石头的分布属于均匀分布,那么出现在圆中的石子的概率约等于圆与正方形的面积比。即pi=4 * count/n,count为在圆中的次数,n为总次数。

用python表示,为:

import random

# 假设半径r=1
r = 1

count = 0
n = 100000

for i in range(n):
    x = random.uniform(-1, 1)
    y = random.uniform(-1, 1)
    if x ** 2 + y ** 2 <= 1:
        count += 1
pi = 4 * (count / n)
print(pi)

返回3.1428。存在一些误差,当模拟次数更多的时候,会更接近结果。

蒙特卡洛算法现在在强化学习中发挥了很重要的作用。

相关文章

网友评论

    本文标题:蒙特卡洛随机方法/模拟(Monte Carlo method)

    本文链接:https://www.haomeiwen.com/subject/vntoehtx.html