Python——随机法(蒙特卡罗方法)计算圆周率
基本概念
蒙特卡罗方法:蒙特卡罗方法于20世纪40年代美国在第二次世界大战中研制原子弹的“曼哈顿计划”计划的成员S.M.乌拉姆和J.冯·诺伊曼首先提出。数学家冯·诺伊曼用驰名世界的赌城—摩纳哥的Monte Carlo—来命名这种方法,为它蒙上了一层神秘色彩。在这之前,蒙特卡罗方法就已经存在。1777年,法国数学家布丰(Georges Louis Leclere de Buffon,1707—1788)提出用投针实验的方法求圆周率π。这被认为是蒙特卡罗方法的起源。
算法思想
当所求解问题是某种随机事件出现的概率,或者是某个随机变量的期望值时,通过某种"实验"的方法,以这种事件出现的频率估计这一随机事件的概率,或者得到这个随机变量的某些数字特征,并将其作为问题的解。
问题分析
通过多次撒点,模拟概率,求面积,而是否在圆内,可以通过到圆心的距离求解,利用计算机的运算速度,可以很快求出圆周率。
撒点次数越多,圆周率就越准确。
源代码
#CalPI.py
from random import random
from math import sqrt
from time import process_time
DARTS=1000
hits=0.0
process_time()
for i in range(1,DARTS+1):x,y=random(),random()dist=sqrt(x**2+y**2)if(dist<=1.0):hits=hits+1
pi=4*(hits/DARTS)
print("PI值是{}.".format(pi))
print("运行时间是:{:.5f}s".format(process_time()))
10e6次
10e7次
10e8次
10e9次
10e10次
实在跑不了,Python太慢了
参考文章
https://baike.so.com/doc/5989374-6202341.html
https://blog.csdn.net/q1694222672/article/details/81985391
Python——随机法(蒙特卡罗方法)计算圆周率相关推荐
- Python用蒙特卡罗方法计算圆周率近似值
实验目的: 1.理解蒙特Ÿ卡罗方法原理. 2.理解for循环本质与工作原理. 3.了解random模块中常用函数. 实验内容: 蒙特Ÿ卡罗方法是一种通过概率来得到问题近似解的方法,在很多领域都有重要的 ...
- Python+numpy实现蒙特卡罗方法估计圆周率近似值
问题描述:使用蒙特卡罗方法估计圆周率近似值,具体描述详见以前发的文章蒙特.卡罗方法求解圆周率近似值原理与Python实现 技术要点:Python扩展库numpy中的模块random可以批量生成特定范围 ...
- 【Python】蒙特卡罗方法计算圆周率及给定随机数种子
蒙特卡罗方法 利用随机点分布,让随机点足够的多,用指定区域随机点数与总区域随机点数做比值来求取指定区域面积 求解圆周率,在一个正方形中撒点,根据在1/4圆内点的数量占总撒点数的比例计算圆周率值. 代码 ...
- Python项目实践:蒙特卡罗方法计算圆周率
一.数学思维 # CalPi.py n = 100 Pi = 0 for k in range(n):Pi += 1 / pow(16, k) * (4 / (8 * k + 1) - 2 / (8 ...
- python:蒙特卡罗方法计算圆周率
求解圆周率可以采用蒙特卡罗方法,在一个正方形中撒点,根据在1/4圆内点的数量占总撒点数的比例计算圆周率值. ...
- 使用蒙特卡罗方法计算圆周率
介绍 这个东西网上已经有很多相关的内容了, 我只是对这个过程感兴趣, 所以自己来做了一个. 网上, 大多数纯粹计算的, 对于我这种视觉型的人来说, 还是要看一下比较好. 这里我加入了 matplotl ...
- 使用蒙特卡罗方法计算圆周率π Python
[问题描述] 假设有一个单位圆,其面积就是π, 单位圆的外接正方形的边长为2,故正方形的面积是4 在正方形内随机产生m个点,假设落在圆内的点的数量为n,则n/m近似等于圆与正方形的面积比 也就是n/m ...
- 种子数是123,如何用蒙特卡罗方法计算圆周率
#pi.py from random import random,seed DARTS=eval(input()) seed(123) hits=0.0 for i in range (DARTS): ...
- 蒙特卡洛方法计算圆周率
import random import mathdef calpai():n = 10000000 #随机实验次数r = 1.0 #圆的半径a, b = (0.0, 0.0) #中心点x_neg, ...
- 蒙特卡罗(Monte Carlo)方法计算圆周率π
一.蒙特卡洛(Monte Carlo)方法简介 蒙特卡洛是一个地名,位于赌城摩纳哥,象征概率.蒙特卡洛(Monte Carlo)方法是由大名鼎鼎的数学家冯·诺伊曼提出的,诞生于上世纪40年代美国的&q ...
最新文章
- jQuery设置样式 css
- “BitPico称BCH98%的节点或位于同一服务器机架中”?
- 02 聚类算法 - 相似度距离公式、维度灾难
- rsyslog+mysql+loganalyzer 环境搭建日志服务器
- jzoj3792,P2062-分队问题【贪心】
- activiti6使用
- 聚集索引表插入数据和删除数据的方式是怎样的
- mysql中dint_mysql常用操作——数据库和表的操作1(共2页)
- cad注释比例和打印比例不一样_CAD中输出不同比例图纸效率不高,原因在这里
- C语言必背18个经典程序
- OSPF多区域配置实例
- 跨平台 App 开发引擎 CrossApp
- 用形态学及HSV完成车牌照识别
- php合同在线签约功能_安居客宣布升级在线签合同功能 推出经纪人线上签约
- 2022最新版独立后台国庆头像生成小程序源码+教程
- R3Det: Refined Single-Stage Detector with Feature Refinementfor Rotating Object论文学习
- python 操作word教程_Python 使用 win32com 模块对word文件进行操作
- NVIDIA Jetson AGX Xavier 配置pytorch环境,anaconda,Pycharm
- linux安装——管理应用程序
- java Spring IOC
热门文章
- 计算机房活动记录,兴趣小组活动记录表
- excel概率密度函数公式_干货|利用excel公式,快速对定量的化学检测方法进行测量不确定度的评定...
- android 相机纹理,Android平台Camera实时滤镜实现方法探讨(五)--GLSurfaceView实现Camera预览...
- python播放音乐同步歌词_python终端播放音乐同定制步显示本地或网络歌词
- 日照油库系统推荐_生产车间用什么地坪好?这款地面硬化系统使用一年后获车间主任点赞:太省心!| 项目回访...
- maya python 弹出窗口_maya python打印状态复选框?
- 修改显卡型号软件_马甲显卡又双叕来了 怎么选知道吗?
- Java中static的含义和用法
- flask mysql 版本_Flask mysql
- pyqt5中sender方法介绍_【第五节】PyQt5事件和信号