蒲丰投针问题的具体过程及推导可参考百科,此处不再赘述,这里仅给出模拟步骤和实现代码。

蒲丰投针试验的模拟步骤

  • 设定试验总次数 NNN,成功次数m=0m = 0m=0,针的长度为hhh,平行线间的距离为aaa (h⩽ah\leqslant ah⩽a)
  • 产生随机数X∼U(0,a/2)X\sim U\left(0,a/2\right)X∼U(0,a/2),θ∼U(0,π)\theta\sim U\left(0,\pi\right)θ∼U(0,π)
  • 若X⩽h2sinθX\leqslant \frac{h}{2}sin\thetaX⩽2h​sinθ,m=m+1m=m+1m=m+1,转上一步
  • 若达到试验总次数N,停止实验,计算π\piπ的估计值π^=2hNam\widehat{\pi }=\frac{2hN}{am}π=am2hN​

代码实现

  • 常规思想
buffon<-function(N,a,h){m = 0for (i in 1:N){x<-runif(1,0,a/2)theta<-runif(1,0,pi) %X和theta的产生if(x<=h/2*sin(theta)){ %判断条件m=m+1}}pin<-2*h*N/(a*m) %pi的估计值result<-c('pi估计值'=pin)return(result)
}buffon(10000,2,0.8) %调用
  • 向量化思想
buffon<-function(N,a,h){m = 0if(h<=a){x<-runif(N,0,a/2)theta<-runif(N,0,pi) %直接产生N个x和thetam = sum(x<=h/2*sin(theta)) %满足判别条件时值为1,并求和pin<-2*h*N/(a*m)}else{stop("Error") %h小于等于a的判别}return(pin)
}buffon(10000,2,0.8)

避免显示循环,遵循向量化原则,才能高效的使用R语言。

R语言-蒲丰投针问题(向量化)相关推荐

  1. c语言模拟随机投点计算概率,我写的蒲丰投针的程序(用概率学计算π),有问题求教...

    谢谢各位的回答. 此题我已经解决了. 问题是我提议没理解清楚,估计还误导大家了. 蒲丰投针的平行线是一组的,我以为是2条.呵呵. 那么这样的话相交条件改一下,就行了. 下面是我的程序,有兴趣的朋友可以 ...

  2. 强化学习 蒲丰投针实验 蒙特卡洛算法

    目录 一.蒲丰投针实验 1.1背景故事 1.2原理介绍 二.蒙特卡洛方法 2.1方法介绍 2.2经验轨迹 2.3在线学习与离线学习 2.4数学原理 一.蒲丰投针实验 1.1背景故事 1777年,蒲丰请 ...

  3. 蒲丰投针计算机模拟ppt,蒙特卡罗模拟课件.ppt

    <蒙特卡罗模拟课件.ppt>由会员分享,提供在线免费全文阅读可下载,此文档格式为ppt,更多相关<蒙特卡罗模拟课件.ppt>文档请在天天文库搜索. 1.蒙特卡洛模拟数学实验之前 ...

  4. 蒙特卡洛—模拟蒲丰投针

    蒲丰投针实验: 公式推导: 实现代码: # 其实这里根据已知的pi然后计算出概率算出自己的pi import numpy as np import matplotlib.pyplot as plt i ...

  5. 蒲丰投针问题的matlab仿真

    吃饭的时候突然想到蒲丰投针问题. 在许多地方都遇到过此针,高中概统,大学概统,随机过程的概率部分,今天读Shannon的传记,他女儿不小心把针洒地上了. 问题描述: 在平面中有一组间隔为a的平行线,随 ...

  6. Matlab模拟蒲丰投针实验计算Π值

    文章目录 1.前言 2.实验目的 3.实验原理 (1)问题描述 (2)问题求解 4.实验过程 5.实验结果 6.实验结论 7.Matlab代码 1.前言 学习了概率论,决定自己动手编程实现蒲丰投针实验 ...

  7. 【游戏仿真实验】Unity仿真蒲丰投针实验,丢针计算圆周率,丢了一百万次针得出的结果是...

    文章目录 一.前言 二.制作场景 1.制作针模型 2.桌面制作 3.平行线制作 三.物理仿真 1.桌面无反弹 2.针掉落 3.针滚动问题 4.针架到平行线上的问题 5.针与针相互影响的问题 四.UI界 ...

  8. 蒲丰投针计算机模拟ppt,蒲丰投针实验模课件.doc

    概率论与数理统计实验 蒲丰投针与蒙特卡罗法 班级 应数12级01班 学号 2012444086 姓名 张旭东 蒲丰投针与蒙特卡罗法 张旭东 2012444086 (重庆科技学院 数学与应用数学 ,重庆 ...

  9. 树的结点数+蒲丰投针概率

    1.已知一棵度为k的树中有n1个度为1的结点,n2个度为2的结点,-,nk个度为k的结点,问该树中有多少个叶子结点? 设该树中的叶子数为n0个.该树中的总结点数为n个,则有: n=n0+n1+n2+- ...

最新文章

  1. 神操作!一行Python代码搞定一款游戏?给力!
  2. (转)C# foreach 中获取索引index的方法
  3. conda 删除环境_conda建立、删除、退出环境
  4. ubuntu 网卡双网口 配置_Ubuntu 18.04 设置多网卡多端口聚合
  5. web播放器(falsh,audio)
  6. vuejs构建的单页面应用history模式子页面微信分享在iOS中遇到的问题
  7. 傅里叶变换库FFTW的安装配置(VS2010)
  8. 业界聚焦机器人发展:需要攻克核心技术
  9. Linux沙箱技术简介
  10. 2分钟搞定收货地址三级联动,数据易于维护,更新。
  11. html调用ckplayer说明,CKplayer功能配置(示例代码)
  12. 睢阳区中小学计算机提升培训,商丘市中小学电脑制作活动培训顺利举行
  13. centOS7 防火墙关闭 远程端口无法访问问题
  14. U盘文件全部变成只读模式的解决办法
  15. 如何下载网易云音乐APP里的MV和短视频?
  16. 【photoshop】笔记之图层详解
  17. 为什么宇宙会将最大速度限制在光速?
  18. Android-SQLite数据库实例,Android的Io模型你了解多少
  19. 基于C#的超市收银管理系统
  20. APP爬虫| 逆向神器 frida 初试

热门文章

  1. awvs安装及问题解决
  2. 宝鲲财经:外汇技术精髓
  3. Using platform encoding GBK actually to copy filtered reso
  4. C++ 判断路径是否存在,不存在则创建(包含多级创建)
  5. 优化扩展live555支持MP2T(mpeg2ts)RTSP拉流附源代码
  6. 牛视系统怎么做矩阵?牛视系统源码怎么独立部署?
  7. ARM STMFD, STMFA, STMED, STMEA, LDMFD, LDMFA, LDMED, LDMEA
  8. 袁萌:收到南京大学录取通知书的那一瞬间
  9. 什么是skywalking
  10. 基于51单片机的温度湿度采集系统