前言python
蒙特卡罗方法是指使用随机数(或更常见的伪随机数)来解决不少计算问题的方法。与它对应的是肯定性算法。蒙特·卡罗方法在金融工程学,宏观经济学,计算物理学(如粒子输运计算、量子热力学计算、空气动力学计算)等领域应用普遍。算法
上面的是百度百科上面的介绍,接下来让咱们一块儿来看看蒙特卡罗方法在Python的中的应用吧,具备必定的参考价值,代码以下:工具
以上就是咱们作一个简单的圆周率的近似计算,在这个过程当中咱们要用到随机数,所以须要先使用import numpy as np导入numpy库。学习
在上面的程序中咱们用8000000个随机数进行投放,这样获得的结果会更精确一些,运行程序须要必定的时间,最终获得的结果以下:编码
学习历来不是一我的的事情,要有个相互监督的伙伴,工做须要学习python或者有兴趣学习python的伙伴能够私信回复小编“学习” 获取资料,一块儿学习blog
接下来进入正题,你随便在一个画图工具上描绘一个阴影图片,咱们就能够用蒙特卡罗来求它的阴影面积,以下图:图片
上面的图形是不规则的,咱们只需知道在投放大量随机数的状况下,随机数在黑色部分出现的几率,再用总面积相乘便可估算黑色部分的面积。咱们知道,黑色的rgb编码为(0,0,0),因此须要统计rgb编码为(0,0,0)时随机数的投放几率便可。import
上面的代码可分为两部分,第一个for后面是用蒙特卡罗方法得到的面积的估计值,第二个for后面是用遍历全部像素点的方法得到的面积的精确值,得到两个输出后进行对比。随机数
咱们在上面的程序中采用了9000000个随机数,能够看出两个输出结果相差并不大。百度
以上就小编所分享内容了,但愿可以帮助到你们