前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >蒙特卡洛随机方法/模拟(Monte Carlo method)

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

作者头像
生信编程日常
发布2020-04-01 16:31:14
1.2K0
发布2020-04-01 16:31:14
举报

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

最常见最经典的例子是求圆周率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。存在一些误差,当模拟次数更多的时候,会更接近结果。

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

欢迎关注公众号!

生信编程日常

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档