Scratch3.0模拟布丰投针,求π的近似值#寻找真知派#

前面介绍了两种投点实验模拟求圆周率近似值的方法,用scratch3.0可以比较直观地看到效果,今天我们再介绍模拟布丰投针实验的编程实现。

布丰(C.Buffon,1707~1788)投针实验是许多概率论教材中,运用蒙特卡洛实验法研究几何概率的经典范例,其原理可以用微积分证明。

公元1777年的一天,法国科学家D布丰的家里高朋满座,原来他们是应主人的邀请前来观看一次奇特试验的.试验开始,但见古稀之年的布丰先生兴致勃勃地拿出一张纸来,然后将纸铺在桌上,又拿出一些质量均匀、长度为平行线间距离二分之一的小针,请客人把针一根根随便扔到纸上,蒲丰则在一旁计数.结果,共投了2122次,其中与任一平行线相交的有704次.蒲丰又做了一个简单的除法2212÷704≈3.142,最后他宣布,这就是圆周率π的近似值,还说投的次数越多越精确.π在这种纷纭杂乱的场合出现,实在是出乎人们的意料,然而它却是千真万确的事实。

抽象成数学模型就是:平面上画有距离为a的一些平行线,向平面上任意投一根长为l(l=a/2)的针,假设针落在任意位置的可能性相同,针与平行线相交的概率P就是π的近似值.

如图所示,以M表示针落下后的中点,以x表示M到最近一条平行线的距离,以φ表示针与此线的交角.针的中心点到最近的平行线的距离小于针与平行线之间夹角的正弦乘以针长的一半,则代表针与平行线相交。由于有正弦,就与π有关了,因此可用微积分相关知识证明其原理。

可以用很多种编程语言模拟这个实验,这里就用scratch3.0来实现,可以直观地展现过程和结果。

先建立一个“布丰”角色,宣布实验开始和实验结果:

再建立一个“格线”角色,由间隔120步的三根横线组成:

又建立一个角色“针”,长度为60步(格线间隔的一半),接到实验开始消息后,开始判断,如果碰到角色“格线”,给变量【相交次数】增加1,并以红色显示,并【图章】留下痕迹,否则以绿色留下痕迹。最后通知“布丰”,用相交次数除以总投针次数,就报出π的近似值。

其中一次实验结果:

下次介绍,用“两数互质”实验求π的近似值的蒙特卡洛方法。欢迎指正。

蒲丰投针结果_Scratch3.0模拟布丰投针,求π的近似值#寻找真知派#相关推荐

  1. 布丰投针java实现,MATLAB模拟布丰投针实验

    MATLAB模拟布丰投针实验 标签(空格分隔): 算法 Buffon's Needle 桌面上有距离为a的若干平行线,将长度为L的针随机丢在桌面上,则这根针与平行线相交的概率是多少?假定L < ...

  2. MATLAB模拟布丰投针实验

    MATLAB模拟布丰投针实验 标签(空格分隔): 算法 Buffon's Needle 桌面上有距离为a的若干平行线,将长度为L的针随机丢在桌面上,则这根针与平行线相交的概率是多少?假定L < ...

  3. unity3d 求两个点长度_用Scratch3.0模拟求π的近似值(二) #寻找真知派#

    用Scratch3.0实现求圆周率π的近似值之蒙特卡洛法(二) 蒙特卡洛赌城建筑 有这样一道中学几何概型的数学题:随机写出两个小于1的正数x与y,它们与数1一起形成一个三元数组(x,y,1).这样的三 ...

  4. R语言对布丰投针(蒲丰投针)实验进行模拟和动态可视化生成GIF动画

    最近我们被客户要求撰写关于动态可视化的研究报告,包括一些图形和统计输出. 介绍 布丰投针是几何概率领域中最古老的问题之一.它最早是在1777年提出的.它将针头掷到有平行线的纸上,并确定针和其中一条平行 ...

  5. 用一根线模拟浦丰投针实验——Java

    用一根线模拟浦丰投针实验--Java 浦丰投针实验(Buffon's needle problem)   本文先给出正确的推理过程,错误的推导过程放在文章末尾,方便大家探讨.   不多废话,直奔主题. ...

  6. 蒲丰投针实验原理_布丰投针实验 MATLAB仿真 以及报告

    布丰投针实验原理.仿真过程以及 MATLAB仿真代码.完整的布丰投针实验报告. 以下内容无关: -------------------------------------------分割线------ ...

  7. 布丰投针试验的仿真和误差估计

    布丰投针试验 一.试验原理 1.试验步骤 2.理论概率及π\piπ的计算与误差 二.Python代码的实现 一.试验原理 1.试验步骤 ​ 1.选一个长度为lll的针.再选取一张白纸,上面划分许多平行 ...

  8. c语言实训题目设计报告 模拟高考平行志愿投档,高考模拟平行志愿投档高考模拟平行志愿投档.doc...

    高考模拟平行志愿投档高考模拟平行志愿投档.doc PAGE PAGE 8 丽水学院C语言程序设计短学期实践综合实验总结报告 题 目 案例九 模拟高考平行志愿投档 指导教师 支林仙 院 系 计算机与信息 ...

  9. python3.0实例_python3.0 模拟用户登录,三次错误锁定的实例

    python用户登录三次锁定怎么修改 1.normal_user是存放用户id及密码的文件 2.lock_file是存放被锁定的用户id的文档,默认为空. 3.程序会对normal_user里的合法用 ...

  10. Android 7.0模拟来电

    Android 7.0模拟来电 写作目的 有时为了测试的需要,在没SIM卡的机器上测试来电,需要一种一种模拟技术.这篇文章***模拟来电的实现***给出了实现的方式,但说的比较概要.本篇文章则根据自己 ...

最新文章

  1. Android API Guides 安卓API指导----第一部分:Introduction(介绍)
  2. python类与继承person类_关于python中类的继承及self
  3. freemaker模板引擎使用详解
  4. java判断时间区间 隔天_Java初中级程序员面试题宝典
  5. javascript学习系列(12):数组中的join方法
  6. tmpfs——Linux的一种虚拟内存文件系统
  7. 第一章 —— 简单工厂模式(节选自:《大话设计模式》)
  8. 这是一个关键……可是这个门槛我上不去了
  9. 一种虚拟现实技术用计算机,虚拟现实技术有哪几大分类?
  10. tensorflow-训练(train)/测试(test)
  11. python 对象_python中对象可不可以
  12. Java游戏编程——愤怒的小鸟(一)
  13. “高精尖领域”的3D打印是这么玩 …
  14. 用计算机计算2的31次方,2的31次方,用什么方法可以最快算出来呢
  15. python系统函数详解
  16. 1-开发环境--android文件系统的结构
  17. WPF 计算DataGrid每一列的合计数
  18. 蝴蝶效应,青蛙现象,鳄鱼法则,鲇鱼效应,羊群效应,刺猬法则,手表定律,破窗理论,二八定律,木桶理论,马太效应,这些你都明白吗?...
  19. ARM Cortex M3M4处理器复位流程
  20. 【学习笔记】builtin函数

热门文章

  1. 超级好用的Caps Lock大小写锁定提示及使用配置
  2. int为什么是-32768到32767
  3. windows计算机资源管理器,windows10系统打开资源管理器的三种方法
  4. 计算机的格式刷,“excle怎样取消格式刷“电脑上格式刷怎么用excel2000
  5. 平行四边形周长和面积计算c语言,平行四边形的周长公式
  6. Misc_PNG高宽详解
  7. 自训练和半监督学习介绍
  8. 笔记本实现共享wifi上网
  9. 调整swiper底部默认小点的样式
  10. LED背光源具的优势