基于Python实现蒙特卡洛法计算圆周率π

 更新时间:2023年06月19日 11:09:53   作者:python小爬菜  
蒙特卡罗法也称统计模拟法、统计试验法,是把概率现象作为研究对象的数值模拟方法,是按抽样调查法求取统计值来推定未知特性量的计算方法,本文我们将介绍如何使用Python来实现蒙特卡洛法计算圆周率π,感兴趣的朋友可以参考下

一、前置内容

蒙特卡罗法也称统计模拟法、统计试验法。是把概率现象作为研究对象的数值模拟方法。是按抽样调查法求取统计值来推定未知特性量的计算方法。蒙特卡罗是摩纳哥的著名赌城,该法为表明其随机抽样的本质而命名。故适用于对离散系统进行计算仿真试验。在计算仿真中,通过构造一个和系统性能相近似的概率模型,并在数字计算机上进行随机试验,可以模拟系统的随机特性。 [1]

1.1、了解random库

random库是使用随机数的Python标准库
伪随机数 :采用 梅森旋转算法 (伪)随机序列中元素
random库主要用于生成随机数
使用random库: import random

1.2、基本随机数函数

为什么要随机种子呢?
因为给了随机数种子, 调用的random()出的随机数是相同 , 那么对于一个随机数程序来说 , 可以做到复现的作用

1.3、扩展随机数函数

二、案例需求

看四分之一的部分 , 使用蒙特卡洛方法 , 模拟1000000次点随机落在这个四分之一上面 , 记录落在四分之一⚪内的,最后 4*( 四分之一落入圆内的随机点/四分之一部分面积), 算出来就是圆周率。

使用蒙特卡洛法计算圆周率
输入:无
输出:一般为3.14...

三、案例分析与解决过程

一、怎么使用蒙特卡洛方法计算圆周率?
答案:看四分之一的部分 , 使用蒙特卡洛方法 , 模拟1000000次点随机落在这个四分之一上面 , 记录落在四分之一⚪内的,最后 4*( 四分之一落入圆内的随机点/四分之一部分面积), 算出来就是圆周率。

二、怎么判断落入点在圆中?
答案:在单位⚪中 , 半径为1 , 那么随机点的x,y值 , (x平方+y平方之和的开方) 为随机点到圆心的距离 , 如果该距离小于1,那么判断该随机点在圆心中. 距离代码 pow(x2+y2 , 0.2)

四、完整代码

from random import random  
# 投入1000000个随机点  
DARTS = 1000*1000;  
hits = 0.0  
for i in range (1 , DARTS +1 ):  
x , y =random() ,random() ;  
# 点到圆心的距离  
dist = pow(x**2 + y**2 , 0.5 )  
# 判断抛出点与圆心距离 , 小于半径 , 在圆中  
if(dist < 1.0):  
hits = hits +1 ;  
pi = 4 * (hits / DARTS)  
print("圆周率为:{}".format(pi))

五、检验与验收代码

六、复盘所学知识

1、随机数库random是python的标准库

2、常用随机函数random() , seed()

到此这篇关于基于Python实现蒙特卡洛法计算圆周率π的文章就介绍到这了,更多相关Python 计算圆周率π内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • pycharm 使用心得(九)解决No Python interpreter selected的问题

    pycharm 使用心得(九)解决No Python interpreter selected的问题

    PyCharm 是由JetBrains打造的一款 Python IDE。具有智能代码编辑器,能理解 Python 的特性并提供卓越的生产力推进工具:自动代码格式化、代码完成、重构、自动导入和一键代码导航等。这些功能在先进代码分析程序的支持下,使 PyCharm 成为 Python 专业开发人员和刚起步人员使用的有力工具。
    2014-06-06
  • langchain中的chat models介绍和使用实例

    langchain中的chat models介绍和使用实例

    这篇文章主要介绍了langchain中的chat models介绍和使用实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • 基于python实现可视化生成二维码工具

    基于python实现可视化生成二维码工具

    这篇文章主要介绍了基于python实现可视化生成二维码工具,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • pandas分别写入excel的不同sheet方法

    pandas分别写入excel的不同sheet方法

    今天小编就为大家分享一篇pandas分别写入excel的不同sheet方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • Python函数的作用域及内置函数详解

    Python函数的作用域及内置函数详解

    这篇文章主要介绍了python函数的作用域及内置函数详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2021-09-09
  • Python 编码Basic Auth使用方法简单实例

    Python 编码Basic Auth使用方法简单实例

    这篇文章主要介绍了 Python 编码Basic Auth使用方法简单实例的相关资料,需要的朋友可以参考下
    2017-05-05
  • python 服务器运行代码报错ModuleNotFoundError的解决办法

    python 服务器运行代码报错ModuleNotFoundError的解决办法

    这篇文章主要介绍了python 服务器运行代码报错ModuleNotFoundError的解决办法,帮助大家排除错误,正确的运行代码,感兴趣的朋友可以了解下
    2020-09-09
  • Python实现的多线程端口扫描工具分享

    Python实现的多线程端口扫描工具分享

    这篇文章主要介绍了Python实现的多线程端口扫描工具分享,工具实现了扫单IP和扫IP段功能,本文给出运行效果和实现源码,需要的朋友可以参考下
    2015-01-01
  • Python3.7+tkinter实现查询界面功能

    Python3.7+tkinter实现查询界面功能

    这篇文章主要介绍了Python3.7+tkinter实现查询界面功能,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-12-12
  • 在Python中操作日期和时间之gmtime()方法的使用

    在Python中操作日期和时间之gmtime()方法的使用

    这篇文章主要介绍了在Python中操作日期和时间之gmtime()方法的使用,是Python入门学习中的基础知识,需要的朋友可以参考下
    2015-05-05

最新评论