Monte Carlo计算Pi,python实现
Monte Carlo
import random
import matplotlib.pyplot as plt
import numpy as np
6
# 函数模拟点的随机掉落,并分为两组
def check(tmp):
global ans, ansX, ansY
global inX, inY
global outX, outY
tmpX = random.random()
tmpY = random.random()
if (tmpX ** 2 + tmpY ** 2) <= 1:
ans = ans + 1
inX = np.append(inX, tmpX)
inY = np.append(inY, tmpY)
else:
outX = np.append(outX, tmpX)
outY = np.append(outY, tmpY)
ansX = np.append(ansX, tmp)
ansY = np.append(ansY, float(ans / tmp * 4))
# 变量声明
ans = 0;
inX = np.array([])
inY = np.array([])
outX = np.array([])
outY = np.array([])
ansX = np.array([])
ansY = np.array([])
circleX = np.linspace(0, 1, 10000)
circleY = (1 - circleX ** 2) ** (0.5)
# 主体
N = int(input("循环次数: "))
# N = 1000
for i in range(N):
check(i + 1)
fig = plt.figure()
p1 = fig.add_subplot(121)
p2 = fig.add_subplot(122)
# i行j列,一维顺序下的第k个
p1.axis("square")
p1.axis([0.0, 1.0, 0.0, 1.0])
p1.scatter(inX, inY, c="r", marker=".")
p1.scatter(outX, outY, c="b", marker=".")
p1.plot(circleX, circleY, 'r')
p2.plot(ansX, ansY)
# 结果输出
plt.show()
print(format(float(ans / N * 4), "0.6f"))

Monte Carlo计算Pi,python实现的更多相关文章
- 利用蒙特卡洛(Monte Carlo)方法计算π值[ 转载]
部分转载自:https://blog.csdn.net/daniel960601/article/details/79121055 圆周率π是一个无理数,没有任何一个精确公式能够计算π值,π的计算只能 ...
- Monte Carlo方法简介(转载)
Monte Carlo方法简介(转载) 今天向大家介绍一下我现在主要做的这个东东. Monte Carlo方法又称为随机抽样技巧或统计实验方法,属于计算数学的一个分支,它是在上世纪四十年代 ...
- Monte Carlo Approximations
准备总结几篇关于 Markov Chain Monte Carlo 的笔记. 本系列笔记主要译自A Gentle Introduction to Markov Chain Monte Carlo (M ...
- (转)Monte Carlo method 蒙特卡洛方法
转载自:维基百科 蒙特卡洛方法 https://zh.wikipedia.org/wiki/%E8%92%99%E5%9C%B0%E5%8D%A1%E7%BE%85%E6%96%B9%E6%B3%9 ...
- Introduction To Monte Carlo Methods
Introduction To Monte Carlo Methods I’m going to keep this tutorial light on math, because the goal ...
- 强化学习读书笔记 - 05 - 蒙特卡洛方法(Monte Carlo Methods)
强化学习读书笔记 - 05 - 蒙特卡洛方法(Monte Carlo Methods) 学习笔记: Reinforcement Learning: An Introduction, Richard S ...
- 简析Monte Carlo与TD算法的相关问题
Monte Carlo算法是否能够做到一步更新,即在线学习? 答案显然是不能,如果可以的话,TD算法还有何存在的意义?MC算法必须要等到episode结束后才可以进行值估计的主要原因在于对Return ...
- 算法之美--1.蒙特卡洛方法计算pi
基本思想: 利用圆与其外接正方形面积之比为pi/4的关系,通过产生大量均匀分布的二维点,计算落在单位圆和单位正方形的数量之比再乘以4便得到pi的近似值.样本点越多,计算出的数据将会越接近真识的pi(前 ...
- 蒙特卡罗方法、蒙特卡洛树搜索(Monte Carlo Tree Search,MCTS)初探
1. 蒙特卡罗方法(Monte Carlo method) 0x1:从布丰投针实验说起 - 只要实验次数够多,我就能直到上帝的意图 18世纪,布丰提出以下问题:设我们有一个以平行且等距木纹铺成的地板( ...
随机推荐
- centos 命令和
一.远程工具 Window系统上 Linux 远程登录客户端有SecureCRT, Putty, SSH Secure Shell.TightVNC... 重点推荐一款 FinallShell,一般人 ...
- Jenkins中配置selenium测试
Jenkins中配置selenium测试 2015/03/23 第一步在jenkins中配置selenium服务器 第二步工程配置: 第三步:执行构建: 第四步,查看报告:
- zabbix系列(九)zabbix3.0实现自动触发zabbix-agent端shell脚本任务
zabbix实现自动触发远程脚本执行命令 Zabbix触发器(trigger)达到阀值后会有动作(action)执行:发送告警信息或执行远程命令 环境 Server:基于centos6.5 final ...
- 转载:configure执行流程(1.5.2)《深入理解Nginx》(陶辉)
原文:https://book.2cto.com/201304/19619.html 我们看到configure命令支持非常多的参数,读者可能会好奇它在执行时到底做了哪些事情,本节将通过解析confi ...
- OneNET麒麟座应用开发之十:空气质量数据监测站项目总结
大气质量数据监测站用于测试空气质量监测及数据采集,实现野外或者室内空气质量的检测. 1.项目概述 本项目是一个定制项目,要求采集大气的压力.温度.湿度.PM25.位置等数据并上传到指定的后台服务器.但 ...
- VS2013 "当前不会命中断点.还没有为该文档家在任何符号" 解决办法
参考:http://blog.csdn.net/u010797208/article/details/40452797 亲测可行
- C++ code:浮点数的比较(Floating-Pointing Number Comparison)
浮点数可以进行比较,但是浮点数由于表示精度在不同浮点数类型中的差异,所以会被误用.例如: #include <iostream> using namespace std; int main ...
- Laravel API 限速异常 HTTPException Too Many Attemps
最近线上 Laravel 错误日志发现了一个异常 HTTPException Too Many Attemps 而我一个同事在本地开发的过程中也频繁遇到这个异常.测试环境:Laravel 5.5. 网 ...
- 性能测试十三:linux常用命令
常用的linux命令: 目录类/ 根目录. 当前目录.. 上级目录cd / 进入根目录cd .. 进入上级目录ls 查看当前目录下的所有文件ll 查看当前目录下所有文件的详细信息pwd 显示当前目录的 ...
- python 全栈开发,Day50(Javascript简介,第一个JavaScript代码,数据类型,运算符,数据类型转换,流程控制,百度换肤,显示隐藏)
一.Javascript简介 Web前端有三层: HTML:从语义的角度,描述页面结构 CSS:从审美的角度,描述样式(美化页面) JavaScript:从交互的角度,描述行为(提升用户体验) Jav ...