您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 利用python讲解蒙特卡洛计算圆周率问题
蒙特卡洛方法(MonteCarlomethod,也有翻译成“蒙特卡罗方法”)是以概率和统计的理论、方法为基础的一种数值计算方法,将所求解的问题同一定的概率模型相联系,用计算机实现统计模拟或抽样,以获得问题的近似解,故又称随机抽样法或统计试验法。蒙特卡洛方法的提出者是大名鼎鼎的数学家冯·诺伊曼,搞计算机的不可能不知道他(计算机之父),冯·诺伊曼在20世纪40年代中期用驰名世界的赌城—摩纳哥的蒙特卡洛来命名这种方法。(大家也别把蒙特卡洛当一个城市,估计和北京的一条街差不了多少,因为摩纳哥(不是非洲的摩洛哥)本身就是个袖珍国家,比我国澳门都小的多)。说明该方法与赌博中的随机性、概率性有着天然而密切的联系。几乎涉及到复杂的、与概率相关的数值计算的领域都有可能会用到。比如计算物理、经济金融、统计学、机器学习等。蒙特卡洛方法并没有什么高深的理论支撑,如果一定要说有理论也就只有概率论或统计学中的大数定律了。蒙特卡洛的基本原理简单描述是先大量模拟,然后计算一个事件发生的次数,再通过这个发生次数除以总模拟次数,得到想要的结果。比如投3个骰子,计算3个骰子同时是6的概率,可以模拟投N次(随机样本数),统计同时是6出现的次数C,然后C除以N即是计算结果。正方形有个内切圆,面积之比:π/4这个正方形内部,随机产生10000个点(即10000个坐标对(x,y)),计算它们与中心点的距离,从而判断是否落在圆的内部。假设正方形上有a个圆点,落在圆内有t个圆点。022t/a=π/4在假设图中白色圆点位置,利用数学勾股定理,x*x+y*y即可得到圆点离圆心位置半径R的平方,但是必须得满足条件开出的根号数小于等于1π=4t/a其中a是已知的,10000个圆点,t是未知的,将要计算首先,t的初始值,先从0开始,所以t=0,其次在基础上不断加1,t=t+1,直到判断完10000,最后判断有多少点落在圆内x*x+y*y=1-11什么是python第三方库由于python开源,全世界有很多人可以共同开发,因此它拥有大量的库,每个库都是某一行业比较顶尖的人才开发出来完成某一任务的代码集合。库提供一套解决方案,所以使用python的库可以解决很多问题,但是是不是库就很难呢,只要打好基础,规范实践就会很容易上手Random:从random即随机数库中导入随机数方法randomMath:从math即数学库中导入开根运算的方法sqrtTime:从time即时间库中导入统计cpu时间运算的方法clock思考:1、是否能用其他方法算圆周率,用时是多少?2、能否用第三库做图,看看随机分布在圆内的点?3、生活中哪些地方还可以用到蒙特卡洛方法来研究实际问题?
本文标题:利用python讲解蒙特卡洛计算圆周率问题
链接地址:https://www.777doc.com/doc-6922051 .html