【Python】蒙特卡罗方法计算圆周率及给定随机数种子
蒙特卡罗方法
利用随机点分布,让随机点足够的多,用指定区域随机点数与总区域随机点数做比值来求取指定区域面积
求解圆周率,在一个正方形中撒点,根据在1/4圆内点的数量占总撒点数的比例计算圆周率值。
代码如下:
#CalPi.py
from random import random
from time import perf_counter
DARTS = 1000*1000 #当前在区域中点的总数量
hits = 0.0 #目前在圆的内部的点的数量
start = perf_counter()
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))
print("运行时间是:{:.5f}s".format(perf_counter()-start))
现以123作为随机数种子,获得用户输入的撒点数量,编写程序输出圆周率的值,保留小数点后6位。
代码如下:
from random import random,seed
seed(123)
darts = eval(input())
hits = 0.0
for i in range (darts):x,y = random(),random()d = pow(x**2+y**2,0.5)if d <= 1.0:hits = hits+1
pi = 4*(hits/darts)
print("圆周率的值为:{:.6f}".format(pi))
【Python】蒙特卡罗方法计算圆周率及给定随机数种子相关推荐
- Python用蒙特卡罗方法计算圆周率近似值
实验目的: 1.理解蒙特Ÿ卡罗方法原理. 2.理解for循环本质与工作原理. 3.了解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 ...
- 使用蒙特卡罗方法计算圆周率
介绍 这个东西网上已经有很多相关的内容了, 我只是对这个过程感兴趣, 所以自己来做了一个. 网上, 大多数纯粹计算的, 对于我这种视觉型的人来说, 还是要看一下比较好. 这里我加入了 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, ...
- Python+numpy实现蒙特卡罗方法估计圆周率近似值
问题描述:使用蒙特卡罗方法估计圆周率近似值,具体描述详见以前发的文章蒙特.卡罗方法求解圆周率近似值原理与Python实现 技术要点:Python扩展库numpy中的模块random可以批量生成特定范围 ...
- 用蒙特卡罗方法实现圆周率的计算
用蒙特卡罗方法实现圆周率的计算 要求(以下分析结果要在实验报告上体现): 根据所得到PI值的精确度(前后两次PI值的差,小于0.0001)来确定是否终止实验. 对比不同精确度(0.01, 0.001, ...
最新文章
- app获取个人信息是否合法_【关注】如何界定App违法违规收集个人信息?认定方法来了!...
- 核磁共振影像数据处理-1(上)-个人简介和系列内容介绍、Li‘s have a solution and plan.
- spring boot中SpringBootCondition框架
- MySQL zip压缩包安装
- C语言实现阿姆斯特朗数armstrong number算法(附完整源码)
- android如何获取默认的桌面程序
- 图卷积神经网络(part1)--卷积概述
- Django中session和cookie简单的使用
- springboot07多环境切换
- ansible+packer+terraform在aws上布署web服务器
- Innodb 的事物隔离级别实现原理(一)
- cs用服务器运行,如何搭建自己的CS服务器(插件配置篇)
- U盘文件变成exe格式的解决办法
- 看表空间大小,查询表空间名的表空间文件存放位置,矿展表空间,查看表空间名称...
- IE无法打开网页的常见原因及解决
- QQ被盗如何找回好友
- 点滴生活感悟(更新至29)
- 是否需要这么一支“特别行动队”?
- 2015去哪儿网校园招聘笔试题:寻找字符串的差异
- 如何成为一名优秀的程序员(六)
热门文章
- 史上最详细的SSM框架整合(Spring、SpringMVC、Mybatis)
- jfinal使用render之后还会继续往下执行代码吗
- 牛客题霸 NC19 子数组的最大累加和问题
- SQL——一种简单的基于角色控制的权限管理数据库设计DEMO
- Web安全——易班优课YOOC课群在线测试自动答题解决方案
- JAVA Swing——框架(JFrame、JDialog)位置居于父窗口中央的解决方案
- Windows——在当前目录打开 PowerShell 命令窗口
- ACM基础知识及算法
- mysql脚本转成oracle脚本_mysql脚本手动修改成oracle脚本
- Swagger3.0