蒲丰(Buffon)投针试验
Buffon掷针实验的计算机模拟实验的设计与实现
Buffon 掷针实验的计算机模拟实验的设计与实现收稿日期:2018-12-05基金项目:长沙理工大学大学生研究性学习与创新性实验项目(1203058);长沙理工大学教研教改项目(CNJG201808)作者简介:周浙泉,王志宇,张棣妍(女),隆超怡(女),长沙理工大学信息与计算科学专业2014级学生;万勇(1963-),硕士研究生,教授,研究方向:几何分析与偏微分方程。
一、研究背景18世纪,蒲丰(Buffon )提出Buffon 投针问题:(1)取一张白纸,在上面画上许多条间距为a 的平行线。
(2)取一根长度为l (l ≤a/2)的针,随机地向画有平行直线的纸上掷n 次,观察针与直线相交的次数,记为m 。
(3)计算针与直线相交的概率。
蒲丰证明了这个概率是:p=2l πa。
因为它与π有关,人们想到利用投针实验来估计圆周率的值。
历史上,有不少人做过蒲丰掷针实验:这个问题十分有趣,只是人工实验往往耗时、耗力,而用计算机模拟实验,却能迅速获得结果。
自从20世纪90年代美国率先开始数学实验以来,数学实验改变了人们传统的数学思维方式,人们发现数学是可以借助计算机去探索和发现的。
近十年来,国内外已有不少的数学实验教材和一些好的数学实验范例,但是这需要一定的计算机编程能力,如math-ematica 编程、matlab 编程等,才能实现人机对话,因此数学实验只能在具有一定数学知识和较高计算机编程能力的特定人群中使用,不能“飞入寻常百姓家”。
二、系统的设计本系统研发工具为Java 语言。
Java 是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
Java 看起来设计得很像C++,但是能够自动处理对象的引用和间接引用,实现自动的无用单元收集,使用户不必为存储管理问题烦恼,能将更多的时间和精力花在研发上。
Java 是一个面向对象的语言。
布丰的投针试验故事介绍及公式推导.doc
布丰的投针试验公元1777年的一天,法国科学家D ·布丰(D ·buffon1707~1788)的家里宾客满堂,原来他们是应主人的邀请前来观看一次奇特试验的。
试验开始,但见年已古稀的布丰先生兴致勃勃地拿出一张纸来,纸上预先画好了一条条等距离的平行线。
接着他又抓出一大把原先准备好的小针,这些小针的长度都是平行线间距离的一半。
然后布丰先生宣布:“请诸位把这些小针一根一根往纸上扔吧!不过,请大家务必把扔下的针是否与纸上的平行线相交告诉我。
”客人们不知布丰先生要干什么,只好客随主意,一个个加入了试验的行列。
一把小针扔完了,把它捡起来又扔。
而布丰先生本人则不停地在一旁数着、记着,如此这般地忙碌了将近一个钟头。
最后,布丰先生高声宣布:“先生们,我这里记录了诸位刚才的投针结果,共投针2212次,其中与平行线相交的有704次。
总数2212与相交数704的比值为3.142。
”说到这里,布丰先生故意停了停,并对大家报以神秘的一笑,接着有意提高声调说:“先生们,这就是圆周率π的近似值!”众宾哗然,一时议论纷纷,个个感到莫名其妙;“圆周率π?这可是与圆半点也不沾边的呀!”布丰先生似乎猜透了大家的心思,得意洋洋地解释道:“诸位,这里用的是概率的原理,如果大家有耐心的话,再增加投针的次数,还能得到π的更精确的近似值。
不过,要想弄清其间的道理,只好请大家去看敝人的新作了。
”随着布丰先生扬了扬自己手上的一本《或然算术试验》的书。
π在这种纷纭杂乱的场合出现,实在是出乎人们的意料,然而它却是千真万确的事实。
由于投针试验的问题,是布丰先生最先提出的,所以数学史上就称它为布丰问题。
布丰得出的一般结果是:如果纸上两平行线间相距为d ,小针长为l,投针的次数为n ,所投的针当中与平行线相交的次数是m ,那么当n 相当大时有:dmn l2≈π 在上面故事中,针长l等于平行线距离d 的一半,所以代入上面公式简化我想,喜欢思考的读者,一定想知道布丰先生投针试验的原理,下面就是一个简单而巧妙的证明。
“投针实验”求圆周率的方法
教材提到了“投针实验”求圆周率的方法。
1777年,法国数学家蒲丰取一根针,量出它的长度,然后在纸上画上一组间距相等的平行线,这根针的长度是这些平行线的距离是的一半。
把这根针随机地往画满了平行线的纸面上投去。
小针有的与直线相交,有的落在两条平行直线之间,不与直线相交。
这次实验共投针2212次,与直线相交的有704次,2212÷704≈3.142。
得数竟然是π的近似值。
这就是著名的蒲丰投针问题。
后来他把这个试验写进了他的论文《或然性算术尝试》中。
蒲丰证明了针与任意平行线相交的概率为p= 2l/πd 。
这个公式中l为小针的长,d为平行线的间距。
由这个公式,可以用概率方法得到圆周率的近似值。
当实验中投的次数相当多时,就可以得到π的更精确的值。
蒲丰实验的重要性并非仅仅是为了求得比其它方法更精确的π值。
而在于它是第一个用几何形式表达概率问题的例子。
计算π的这一方法,不但因其新颖,奇妙而让人叫绝,而且它开创了使用随机数处理确定性数学问题的先河,是用偶然性方法去解决确定性计算的前导。
找一根粗细均匀,长度为 d 的细针,并在一张白纸上画上一组间距为l 的平行线(方便起见,常取l = d/2),然后一次又一次地将小针任意投掷在白纸上。
这样反复地投多次,数数针与任意平行线相交的次数,布丰(Comte de Buffon)设计出他的著名的投针问题(needleproblem)。
依靠它,可以用概率方法得到π的近似值。
假定在水平面上画上许多距离为a的平行线,并且,假定把一根长为l<a的同质均匀的针随意地掷在此平面上。
布丰证明:该针与此平面上的平行线之一相交的概率为:p=2l/(api) 把这一试验重复进行多次,并记下成功的次数,从而得到P的一个经验值,然后用上述公式计算出π的近似值,用这种方法得到的最好结果是意大利人拉泽里尼(Lazzeri ni)于1901年给出的。
蒲丰投针实验原理
蒲丰投针实验原理
蒲丰投针实验是一种检测泥沙粒径分布的实验方法,它是利用悬浮在水中的粒度分布模拟藉由空气流抛掷及落入平板上的控制情形来模拟河流中悬浮颗粒的粒径分布,从而进行检测的。
该实验流程是:将检测的粒料悬浮于水中,利用抛掷及落入平板上的控制条件来模拟河流中悬浮颗粒的粒径分布,然后借助投针实验来观测平面上粒料的分布情况。
最后,根据获得的结果计算出每种粒径的百分率,从而可以得出泥沙粒径分布情况。
蒲丰(Buffon)投针试验
一、利用Matlab计算机语言验证蒲丰(Buffon)投针试验问题给定a=10,b=5时,模拟100万次投针实验的Matlab程序如下:a=10;b=5;n=1000000;p=10; % a为平行线间距,b为针的长度,n为投掷次数,p为有效数字位数x=unifrnd(0,a/2,[n,1]);phi=unifrnd(0,pi,[n,1]); % 产生均匀分布的随机数,分别模拟针的中点与最近平行线的距离和针的倾斜角y=x<0.5*b*sin(phi); m=sum(y); % 计数针与平行线相交的次数PI=vpa(2*b*n/(a*m),p)运行结果PI =3.138919145二、利用C++计算机语言编程通过大量重复实验验证以下结论:三个阄,其中一个阄内写着“有”字,两个阄内不写字,三人依次抓取,各人抓到“有”字阄的概率均为1/3。
程序如下:#include<stdio.h>#include<stdlib.h>#include<time.h>void main(){int n=500000;int i,a[3]={0};srand(time(NULL));for(i=0;i<n;i++)a[rand()%3]++;printf("共测试%d次,其中有字事件有%d次, 占%.2f%%\n""抓到无字事件1有%d次,占%.2f%%\n""抓到无字事件2有%d次,占%.2f%%\n""抓到无字事件共%d次,占%.2f%%",n,a[0],a[0]*100.0/n,a[1],a[1]*100.0/n,a[2],a[2]*100.0/n,a[1]+a[2],(a[1]+a[2])*100.0/n);return 0;}。
Buffon投针试验
a
M x
m(G ) G的面积 P ( A) m( S ) S的面积
b 0 2 sin d a π 2 b 2b . a π aπ 2
π
蒲丰投针试验的应用及意义
根据频率的稳定性, 当投针试验次数n很大时, m 算出针与平行直线相交的次数m, 则频率值 即可 n 作为P( A)的近似值代入上式, 那么
定义 当随机试验的样本空间是某个区域,并且任 意一点落在度量 (长度, 面积, 体积) 相同的子区域 是等可能的,则事件 A 的概率可定义为
m( A) P( A) m( S )
(其中m( S ) 是样本空间的度量, m( A) 是构成事件 A 的子区域的度量 ) 这样借助于几何上的度量来合理 规定的概率称为几何概率.
投针试验的所有可能结果 与矩形区域 a S {( x, ) | 0 x , 0 } 2 中的所有点一一对应. 由投掷的任意性可知, 这是一个几何概型问题. 所关心的事件
A {针与任一平行直线相交} 发生的充分必要条件为S中的点满足
b 0 x sin , 0 π 2
蒲丰投针试验
例 1777年,法国科学家蒲丰(Buffon)提出了投针 试验问题.平面上画有等距离为a(>0)的一些平行直 线,现向此平面任意投掷一根长为b(<a)的针,试求 针与任一平行直线相交的概率.
解: 以x表示针投到平面上时, a 针的中点M 到最近的一条平行
M x
直线的距离, 表示针与该平行直线的夹角. 那么针落在平面上的位置可由( x, )完全确定.
几何概型
古典概型是关于试验的结果为有限且每个结果出现的 可能性相同的概率模型。一个直接的推广是:保留等 可能性,而允许试验的所有可能结果为直线上的一线 段,平面上的一区域或空间中的一立体等具有无限多 个结果的情形,称具有这种性质的试验模型为几何概 型.
蒲丰投针试验和π
蒲丰投针试验与π学科:《数学史》作者:***班级:07级数本班学号:********蒲丰投针试验和π作者:*** 班级:07级数本班 学号:******摘要:“圆周率”是指一个圆的周长与其直径的比值。
古今中外,许多人致力于圆周率的研究与计算。
为了计算出圆周率的越来越好的近似值,一代代的数学家为这个神秘的数贡献了无数的时间与心血。
公元1777年,法国数学家、自然科学家蒲丰利用很多次随机投针试验算出π的近似值,引起广泛关注,这也是最早的几何概率问题,并且蒲丰本人对这个实验给予了证明。
计算π的这一方法,不但因其新颖,奇妙而让人叫绝,而且它开创了使用随机数处理确定性数学问题的先河,是用偶然性方法去解决确定性计算的前导。
关键字:π 蒲丰 蒲丰投针试验 几何概率因为任何两个圆都相似,故所有圆的周长和它的直径的比都等于同一常数,我们把这一常数叫“圆周率”。
国际上,人们习惯地把圆周率用符号π表示。
1600年,英国的威廉·奥托兰特首先使用πδ表示圆周率,他的理由是,因为π是希腊文圆周的第一个字母,奥托兰特用它来表示圆周长,而δ是希腊文直径的第一个字母,奥托兰特用它来表示直径,根据圆周率的定义,理应用πδ表示圆周率,但在推算圆周率的过程中,人们常用直径为1的圆,即令1δ=,这样πδ就等于π了。
1706年英国的琼斯首先改用π表示圆周率,后来被数学家广泛接受,一直沿用至今。
古今中外,许多人致力于圆周率的研究与计算。
为了计算出圆周率的越来越好的近似值,一代代的数学家为这个神秘的数贡献了无数的时间与心血。
回顾历史,人类对π的认识过程,反映了数学和计算技术发展情形的一个侧面。
π的研究,在一定程度上反映这个地区或时代的数学水平。
德国数学家康托说:“历史上一个国家所算得的圆周率的准确程度,可以作为衡量这个国家当时数学发展水平的指标。
”1874年勒让德证明了π和π都是无理数,即不能用两个整数的比表示.1882年德国数学家林德曼证明了π是超越数,即不可能是一个整系数代数方程的根,尽管如此,自古至今,很多人都在用各种方法求π的近似值。
蒲丰投针 2
• 1850年,瑞士数学家沃尔夫在苏黎世,用 一根长36mm的针,平行线间距为45mm,投 掷5000次,得π ≈3.1596. • 1864年,英国人福克投掷了1100次,求得 π ≈3.1419.1901年,意大利人拉泽里尼投 掷了3408次,得到了准确到6位小数的π 值 .
2013-3-24
• 其中投针问题可述为:设在平面上有一组
平行线,其距都等于D,把一根长l<D的针 随机投上去,则这根针和一条直线相交的 概率是2l/π D.由于通过他的投针试验法可 以利用很多次随机投针试验算出π 的近似 值,所以特别引人瞩目,这也是最早的几 何概率问题.并且蒲丰本人对这个实验给予 证明。
2013-3-24
在考虑一个以r(r <l/2)为半径的硬币与平 面上画有间距为l的平行线相交的概率时, 假设硬币的周长为c, c=2π r, 则其概率结 果可以改写成: P0 =2r/ l =2π r/ (π l) =c/ (π l).
• 从上面的结果发现, 它们的形式是一 样的, 都是周长除以π l的形式,本小 组从中得到启发: 在蒲丰问题中, 对 投掷一个一般的凸多边形来说, 它与 平行线相交的概率可能与这个凸多边 形的周长密切相关.
2013-3-24
蒲丰投针问题研究史
• 蒲丰是几何概率的开创者,并以蒲丰投针
问题闻名于世,发表在其1777年的论著《 或然性算术试验》中.其中首先提出并解决 下列问题:把一个小薄圆片投入被分为若 干个小正方形的矩形域中,求使小圆片完 全落入某一小正方形内部的概率是多少, 接着讨论了投掷正方形薄片和针形物时的 概率问题.这些问题都称为蒲丰问题.
2013-3-24
• 解 1) 和三角形与平行线相交的讨论相似, 四边形与平行 线相交也有5种情形: • ①四边形只有一个顶点在一条平行线上(1个交点) (如图(a)) • ②四边形有两条边分别与平行线相交(2个交点) (如图(b)); • ③平行线过四边形的对角线(2个交点) (如图(c)); • ④四边形的某一顶点恰好在平行线上, 其对应的某一边也 在同一条平行线上(2个交点) (如图(d)); • ⑤四边形的某一条边与平行线重合(无穷多个交点) (如图 (e)).
Buffon投针实验报告
Buffon投针实验一、实验目的:在计算机上用试验方法求圆周率的近似值。
二、实验原理:假设平面上有无数条距离为1的等距平行线,现向该平面随机投掷长度为L(L≤1)的针,则针与平行线相交的概率 P=。
设针的中心M与最近一条平行线的距离为x,则x~U(0,1);针与平行线的夹角为(不管相交与否),则~U(0,)如图:()在矩阵上均匀分布,且针与平行线相交的充要条件为x≤=;P=P{ x=}。
记录≤成立的次数,记为由-大数定理:≈,则=2。
在计算机上产生则=~U(0,),i=1,2,…,n;再产生,则, i=1,2,…,n三、实验方法及代码:在计算机上进行模拟实验,求出的实验值。
给定L,在计算机上利用MFC独立随机产生x和,然后判断≤是否成立.代码如下:#include "stdafx.h"#include "buffon.h"#include "ChildView.h"#include "ChoiceDlg.h"#include <ctime>#include <cmath>#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;#endif// CChildViewCChildView::CChildView(){Trynum=1000;}CChildView::~CChildView(){}BEGIN_MESSAGE_MAP(CChildView,CWnd )//{{AFX_MSG_MAP(CChildView)ON_WM_PAINT()ON_COMMAND(ID_TOOL_NUM, OnToolNum)ON_COMMAND(ID_TOOL_RETRY, OnToolRetry)//}}AFX_MSG_MAPEND_MESSAGE_MAP()// CChildView message handlersBOOL CChildView::PreCreateWindow(CREATESTRUCT& cs){if (!CWnd::PreCreateWindow(cs))return FALSE;cs.dwExStyle |= WS_EX_CLIENTEDGE;cs.style &= ~WS_BORDER;cs.lpszClass = AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW|CS_DBLCLKS,::LoadCursor(NULL, IDC_ARROW), HBRUSH(COLOR_WINDOW+1), NULL);return TRUE;}void CChildView::OnPaint(){CPaintDC dc(this),*pDC;pDC=&dc;CFont font, *pOldFont;font.CreatePointFont(200,"宋体");pOldFont=pDC->SelectObject(&font);pDC->SetTextColor(RGB(255,0,0));pDC->TextOut(100,5,"蒲丰投针试验");pDC->SelectObject(pOldFont);CPen myPen1,myPen2, *pOldPen1,*pOldPen2;CRect rect1(30,30,920,620);pDC->Rectangle(rect1);myPen1.CreatePen(PS_SOLID, 1, RGB(0,0,255));pOldPen1=pDC->SelectObject(&myPen1);for(int i=100;i<600;i+=50){pDC->MoveTo(50,i);pDC->LineTo(900, i);}pDC->SelectObject(pOldPen1);myPen2.CreatePen(PS_SOLID, 1, RGB(0,255,0));pOldPen2=pDC->SelectObject(&myPen2);srand(time(0));int a,b,q,a1,b1,su,flag;np=0;for(int j=0;j<Trynum;j++){a=rand()%850+50;b=rand()%450+100;q=rand()%180;a1=25*cos(q);b1=25*sin(q);su=pow(-1,rand()%2);pDC->MoveTo((a-su*a1),(b-su*b1));pDC->LineTo((a+su*a1),(b+su*b1));if( (b%50) >= 25 )flag =50-b%50;elseflag = b%50;if( 25*sin(q) >= flag )np++;}pDC->SelectObject(pOldPen2);CString str;int c=Trynum/(np*1.0);int d=(int)((Trynum/(np*1.0)*100000))%100000;str.Format("投针次数:%d;\n相交次数:%d;\nπ的估算值:%d.%d",Trynum,np,c,d);MessageBox(str,"实验数据信息");}void CChildView::OnToolNum(){CChoiceDlg mydlg;if(mydlg.DoModal()==IDOK){this->Trynum = mydlg.m_Trynum ;this->RedrawWindow();}}void CChildView::OnToolRetry(){// TODO: Add your command handler code herethis->RedrawWindow();}四、实验数据处理与分析:根据实验数据,得到近似值为3.2313,可得相对误差为δ=(3.2313-π)/π≈0.02856;运行截图:五、实验小结:本次实验,通过MFC进行模拟投针,模拟效果较好,随着投针次数模拟的增多,实验结果逼近于π的真实值,但是实验程序有待优化,在较多投针次数的模拟中,实验程序运行速度较慢,可以改进相关算法来做适当调节。
蒲丰投针问题_概率论论文
Buffon投针问题摘要本文讨论了Buffon投针问题的解法及其不同解法之间的内在联系,同时从投针到投平面图形对Buffon投针问题给出了一些推广,并得到一般的结论,指出了其概率在探矿、近似计算中的应用。
关键词蒲丰投针概率随机试验近似计算一、引言蒲丰投针问题是由法国科学家蒲丰(Buffon)在1777年提出的,它是概率中非常有代表性的问题,它是第一个用几何形式表达概率问题的例子,其结论具有很强的理论与实际意义。
蒲丰针问题的解决不仅较典型的反应了集合概率的特征及处理方法,而且还可以由此领略到从“概率土壤”上开出的一朵瑰丽的鲜花——蒙特卡洛(Monte-Carlo)方法。
二、Buffon投针问题及其解法Buffon投针问题:平面上画有等距离的平行线,每两条平行线之间的距离为2a,向平面任意投掷一枚长为2l(l<a)的针,试求针与平行线相交的概率。
解:以x表示针的中点M到最近一条平行线的距离,以φ表示该针与平行线的夹角。
针与平行线的关系见图1.则有:0≤x≤a,0≤φ≤π,由它们所围成的矩形区域记为G1。
针与平行线相交的充要条件是:0≤x≤lsinφ,记满足这个关系的区域为g1(图2中的阴影部分)。
则所求概率为P1=g1的面积G1的面积=∫lsinφdφπaπ=2laπ三、Buffon投针问题不同解法及其内在联系上述解法是常见解法之一(记为解法一),这里讨论一下蒲丰针问题的其他解法及其之间的联系。
1.其他解法解法二:以x表示针的重点M到最近一条平行线的距离,y表示该针在此平行线上投影和长度,如图3所示。
易知x和y的取值范围是0≤x≤a,0≤y≤2l,这两个不等式确定了xOy平面上的矩形区域G2,针与平行线相交的充要条件是(y2)2+x2≤l2,该不等式确定了矩形区域G2(如图4所示)中的区域g2,从而所求概率为P2=g2的面积G2的面积=14·l·2l·π2l·a=lπ4a解法三:作垂直于平行线的直线,在该直线上选定一方向为正向,用z1,z2分别表示针头与针尾关于某平行线的纵坐标(如图5所示),该平行线的选取应使|z1+z2|≤2a。
数学史上的经典实验:布丰投针实验
布丰投针实验公元1777年的一天,法国科学家D•布丰(D.Buffon1707~1788)的家里宾客满堂,原来他们是应主人的邀请前来观看一次奇特试验的。
试验开始,但见年已古稀的布丰先生兴致勃勃地拿出一张纸来,纸上预先画好了一条条等距离的平行线。
接着他又抓出一大把原先准备好的小针,这些小针的长度都是平行线间距离的一半。
然后布丰先生宣布:“请诸位把这些小针一根一根往纸上扔吧!不过,请大家务必把扔下的针是否与纸上的平行线相交告诉我。
”客人们不知布丰先生要玩什么把戏,只好客随主意,一个个加入了试验的行列。
一把小针扔完了,把它捡起来又扔,而布丰先生本人则不停地在一旁数着、记着,如此这般地忙碌了将近一个钟头。
最后,布丰先生高声宣布:“先生们,我这里记录了诸位刚才的投针结果,共投针2212次,其中与平行线相交的704次。
总数2212与相交数704的比值为3.142。
”说到这里,布丰先生故意停了停,并对大家报以神秘的一笑,接着有意提高声调说:“先生们,这就是圆周率π的近似值!”众客哗然,一时疑议纷纷,大家全部感到莫名期妙:“圆周率π?这可是与圆半点也不沾边的呀!”布丰先生似乎猜透了大家的心思,得意洋洋地解释道:“诸位,这里用的是概率的原理,如果大家有耐心的话,再增加投针的次数,还能得到π的更精确的近似值。
不过,要想弄清其间的道理,只好请大家去看敝人的新作了。
”随着布丰先生扬了扬自己手上的一本《或然算术试验》的书。
π在这种纷纭杂乱的场合出现,实在是出乎人们的意料,然而它却是千真万确的事实。
由于投针试验的问题,是布丰先生最先提出的,所以数学史上就称它为布丰问题,布丰得出的一般结果是:如果纸上两平行线间相距为d,小针长为l,投针的次数为n,所以投的针当中与平行线相交的次数的m,那么当n相当大时有:π≈(2ln)/(dm)在上面故事中,针长l恰等于平行线间距离d的一半,所以代入上面公式简化得:π≈n/m值得一提的是,后来有不少人步布丰先生的后尘,用同样的方法来计算π值。
与π有关的故事——布丰投针问题
与π有关的故事——布丰投针问题1777年法国科学家布丰提出的一种计算圆周率的方法——随机投针法,即著名的布丰投针问题。
投针步骤这一方法的步骤是:1)取一张白纸,在上面画上许多条间距为a的平行线。
2)取一根长度为l3)计算针与直线相交的概率.18世纪,法国数学家布丰和勒可莱尔提出的“投针问题”,记载于布丰1777年出版的著作中:“在平面上画有一组间距为a的平行线,将一根长度为l(l平行线中任一条相交的概率。
”布丰本人证明了,这个概率是p=2l/(πd)(π为圆周率)最简单些:1)取一张白纸,在上面画上许多条间距为a的平行线;2)取一根长度为a;3)计算针与直线相交的概率为2/π =m/n m相交次数,n投针总次数π= 2n/m公元1901年,意大利数学家拉兹瑞尼作了3408次投针,给出π的值为3.1415929——准确到小数后6位.不过,不管拉兹瑞尼是否实际上投过针,他的实验还是受到了美国犹他州奥格登的国立韦伯大学的L·巴杰的质疑.通过几何、微积分、概率等广泛的范围和渠道发现π,这是着实令人惊讶的!下面是一些资料:圆周率估计值实验者年代投掷次数相交次数3.1596 沃尔夫1850 5000 25313.1554 史密斯1855 3204 12193.137 德摩根1680 600 3833.1595 福克斯1884 1030 4893.1415929 拉泽里尼1901 3408 18083.1795 赖纳1925 2520 8591850年,一位叫沃尔夫的人在投掷5000多次后,得到π的近似值为3.1596。
1901年,意大利数学家拉兹瑞尼作了3408次投针,给出π的值为3.1415929——准确到小数后6位.不过,不管拉兹瑞尼是否实际上投过针,他的实验还是受到了美国犹他州奥格登的国立韦伯大学的L•巴杰的质疑.通过几何、微积分、概率等广泛的范围和渠道发现π,这是着实令人惊讶的!不过,蒲丰实验的重要性并非是为了求得比其它方法更精确的π值。
【数学课件】投针试验
π的试验值
3.159 6 3.155 4 3.137 3.159 5 3.141 592 9 3.17 5
课外冲浪
用计算机实现统计模拟或抽 样,以获得问题的近似解,称为 蒙特卡罗(Monte Carlo)方法, 又称统计模拟法或统计试验法。 它是以概率和统计的理论为基础 的一种计算方法,他将所求解的 问题与一定的概率模型相联系。
好好学习,天天向上。
准确、美观、独特、创新…的制作表1
Just do it!
分工合作:统计全班的试验数据 实验次数 200 400 600 800 1000 1200 1400 1600 1700
相交频数 相交频率
请每组同学利用全班的试验数据制作折线统计图; 通过本次试验、统计的过程,你什么发现和感想吗?
投针试验的历史资料
我的课堂,我做主
小组讨论: 用几句话归纳这节课的几个环节 完成了这节课的学习,对我影响最深的学 习体验是什么?
这节课还存在的疑惑是什么?又将如何去解决?
课外冲浪
最后蒲丰宣布结果:大家共投针2212次, 其中与直线相交的就有704次。用704去除2212, 得数为3.142。他笑了笑说:“这就是圆周率π 的近似值。”这时,众宾客哗然:“圆周率π? 这根本和圆沾不上边呀?”蒲丰先生却好像看透 了众人的心思,斩钉截铁地说:“诸位不用怀 疑,这的确就是圆周率π的近似值。你们看,连 圆规也不要,就可以求出π的值来。只要你有耐 心,投掷的次数越多,求出的圆周率就越精 确。”这就是数学史上有名的“投针试验”。
试验者
Wolf Smitn C.Dg morgan Fox Lazzerini Reina
时间
1850年 1855年 1860年 1884年 1901年 1925年
随机数与蒙特卡罗方法
二、伪随机数
伪随机数列:实际产生伪随机数的时候,往往利用 某一递推 xn = f ( xn −1, xn − 2 ,, xn − k ) 产生数列 x1 , x2 ,, xn , 当n充分大时,这一数列具有独立抽样序列的性质, 我们成为伪随机数列。
随机种子:递推公式中的初值,我们称为随机种子。一旦随机 种子确定,随机序列便可以确定。
一、蒙特卡罗方法概述
蒙特卡罗算法名称的由来: 1946年物理学家冯.诺一曼利用计算机使用随机抽 样的方法模拟了裂变中的中子反应,但这是一个 与原子弹研制相关的秘密工作,他们将该方法称 为蒙特卡罗。之后这个名字变流传开来,被人们 所喜爱。
二、蒙特卡罗方法求解实际问题的步骤
1、蒲丰(Buffon)随机投针试验介绍 随机模拟的方法从方法特征来说,最早可以追溯到 18世纪后半叶的蒲丰(Buffon)随机投针试验。从中我 们可以体会出蒙特卡罗方法的一般过程。 圆周率的注记:2011年10月16日,日本长野县饭田市公 司职员近藤茂利用家中电脑将圆周率计算到小数点后10 万亿位,刷新了2010年8月由他自己创下的5万亿位吉尼 斯世界纪录。今年56岁近藤茂使用的是自己组装的计算 机,从去年10月起开始计算,花费约一年时间刷新了纪 录。 1777年法国学者蒲丰(Buffon)提出可以用投针实验来 求得圆周率。被称为计算π最神奇方法之一。
A A A A(mod M ) = A − [ ] × M = A − [ ]× M M M
A [ 其中 M ] 表示取整运算
A< M A≥ M
。
四、均匀随机数的产生
同余法的一般递推公式:
yn = (kyn −1 + b)(mod M ) yn x (n = 1,2,3,) = n M 初值 y0
蒲丰投针试验---------概率论与数理统计
蒲丰资料
1777年,法国科学家蒲丰(Buffon)提ห้องสมุดไป่ตู้了投针 试验问题.平面上画有等距离为a(a>0)的一些平行直 线,现向此平面任意投掷一根长为b( b<a )的针,试求 针与某一平行直线相交的概率. 解 以 x表示针投到平面上时,
针的中点M到最近的一条平行
a
M x
直线的距离, 表示针与该平行直线的夹角.
1.0
0.75 0.83 0.5419
600
1030 3408 2520
382
489 1808 859
3.137
3.1595 3.1415929 3.1795
利用蒙特卡罗(Monte Carlo)法进行计算机模拟. 单击图形播放/暂停 ESC键退出 取a 1, b 0.85.
利用上式可计算圆周率π 的近似值.
历史上一些学者的计算结果(直线距离a=1)
试验者 Wolf Smith 时间 1850 1855 针长 0.8 0.6 投掷次数 相交次数 π的近似值 5000 3204 2532 1218 3.1596 3.1554
De Morgan 1860
Fox Lazzerini Reina 1884 1901 1925
那么针落在平面上的位置可由( x , )完全确定.
投针试验的所有可能结果与 矩形区域
a S {( x , ) 0 x ,0 π} 2 中的所有点一一对应 . 由投掷的任意性可知 这是一个几何概型问题.
a
M x
所关心的事件
o
A { 针与某一平行直线相交} 发生的充分必要条件为S 中的点满足 b 0 x sin , 0 π . 2
投 针 试 验
概 率”,来估计针与平行线相交的概率.
试验方式:小组合作交流,全班汇总试验验数据,达到数
据共享
试验工具:有距离为a平行线的纸,长度是l粗细均匀的针(l<a)
还有什么方面需要注意的吗?
Just do it!
每组至少完成100次试验
可采用不同的方式记录其中相交和不相交的次数 快速完成,争取名次
试验者
Wolf Smitn C.Dg morgan Fox Lazzerini Reina
时间
1850年 1855年 1860年 1884年 1901年 1925年
投掷次数
5 000 3 204 600 1 030 3 408 2 520
相交次数
2 532 1 218.5 382.5 489 1 808 859
我的课堂,我做主
小组讨论: 用几句话归纳这节课的几个环节 完成了这节课的学习,对我影响最深的学 习体验是什么?
这节课还存在的疑惑是什么?又将如何去解决?
课外冲浪
最后蒲丰宣布结果:大家共投针2212次, 其中与直线相交的就有704次。用704去除2212, 得数为3.142。他笑了笑说:“这就是圆周率π 的近似值。”这时,众宾客哗然:“圆周率π? 这根本和圆沾不上边呀?”蒲丰先生却好像看透 了众人的心思,斩钉截铁地说:“诸位不用怀 疑,这的确就是圆周率π的近似值。你们看,连 圆规也不要,就可以求出π的值来。只要你有耐 心,投掷的次数越多,求出的圆周率就越精 确。”这就是数学史上有名的“投针试验”。
数学家蒲丰 (Buffon, Georges Louis) (1707-1788)
试一试 猜一猜
当针投到平行线的纸上时,会有什么情况出现?
蒲丰投针试验
1.0
0.75 0.83 0.5419
600
1030 3408 2520
382
489 1808 859
3.137
3.1595 3.1415929 3.1795
利用蒙特卡罗(Monte Carlo)法进行计算机模拟. 单击图形播放/暂停 ESC键退出 取a 1, b 0.85.
利用上式可计算圆周率π 的近似值.
历史上一些学者的计算结果(直线距离a=1)
试验者 Wolf Smith 时间 1850 1855 针长 0.8 0.6 投掷次数 相交次数 π的近似值 5000 3204 2532 1218 3.1596 3.1554
De Morgan 1860
Fox Lazzerini Reina 1884 1901 1925
蒲丰投针试验
蒲丰资料
1777年,法国科学家蒲丰(Buffon)提出了投针 试验问题.平面上画有等距离为a(a>0)的一些平行直 线,现向此平面任意投掷一根长为b( b<a )的针,试求 针与某一平行直线相交的概率. 解 以 x表示针投到平面上时,
针的中点M到最近的一条平行
a
M x
直线的距离, 表示针与该平行直线的夹角.
那么针落在平面上的位置可由( x , )完全确定.
投针试验的所有可能结果与 矩形区域
a S {( x , ) 0 x ,0 π} 2 中的所有点一一对应 . 由投掷的任意性可知 这是一个几何概型问题.
a
M x
所关心的事件
o
A { 针与某一平行直线相交} 发生的充分必要条件为S 中的点满足 b 0 x sin , 0 π . 2
蒲丰(Buffon)投针随机试验的讨论 (修改稿)
(2006-3-7, 2009-9-18再修改)例 ( 蒲丰(Buffon )投针随机试验的讨论 ) 在平面上画有相互距离均为2a 的平行线束,向平面上随机投一枚长为2l 的针,为了避免针与两平行线同时相交的复杂情况,假定0>>l a , 设M 为针的中点,y 为M 与最近平行线的距离,φ为针与平行线的交角(如图1)a y ≤≤0, πϕ≤≤0. 于是,很明显,针与平行线相交的充要条件是ϕsin l y ≤(如图2),故相交的概率为ald l a dy d a p l πϕϕπϕπϕππ2 sin 1 1sin 000===⎰⎰⎰ (1) 我们用n 表示投针次数, n S 表示针与平行线相交次数,由大数定理知,当n 充分大时,频率接近于概率,即aln S n π2≈ 于是有naS nl2≈π (2)这就是上面所说的用随机试验求π值的基本公式。
根据公式(2),19—20世纪,曾有不少学者做了随机投针试验,并得到了π的估计值 . 其中最详细的有如下两个 :其中π的估计值就是利用π的近似公式(8)得到的,即1596.363320002532455000362≈=⨯⨯⨯≈π (Wolf )1415929.31133551808334085.22≈=⨯⨯⨯≈π (Lazzarini )一般情况下,随机抽样试验的精度是不高的,Wolf 的试验结果是π≈3.1596,只准确两位有效数字 .精度是由方差n p p n S D n )1(-=⎪⎭⎫⎝⎛决定的,为了确定概率p ,不妨取l =a 这一极限情况,这时π2≈p =0.6366,n n S D n 2313.0≈⎪⎭⎫⎝⎛,由积分极限定理, dx n p p p n S P x n n ⎰-∞→=⎪⎪⎭⎪⎪⎬⎫⎪⎪⎩⎪⎪⎨⎧≤--λλπλ221-e21)1(lim即频率n S n /近似地服从正态分布律()n p p p N /)1(,- . 如果要求以大于95%的概率(96.1=λ),保证以频率n S n /作为p 的近似值精确到三位有效数字,001.0≤-=p nS nε 即≈⎪⎪⎭⎫⎝⎛≤-001,0p n S P n 95.021/)1(001.0)1(001.0212≥⎰----np p np p x dx eπ则必须有96.1/)1(001.0=≥-λnp p根据上式,要求试验次数7.88001.0/231.096.122≈⨯≥n 万次 .至于Lazzarini 的试验,为什么实验次数少反而精确度却很高呢?这是由于这一试验结果恰好和祖冲之密率355/113相合,而祖冲之密率为无理数π的连分式,属于π的最佳有理逼近 . 很明显,作为一种具有随机性质的试验,其结果恰好与最佳有理逼近的结果一致是非常偶然的;顾及到上述讨论,故Lazzarini 的试验结果是不大可能的 .注:以上的讨论是第6章“假设检验”方法的一个有实际意义的例子。
Buffon投针实验的理论证明
Buffon投针实验的理论证明我们知道,当正多边形的边数无限增多时,它的极限是圆。
所以“圆”这种图形可以代表弯曲得最厉害的小针。
现在假定圆形小针的直径恰好与纸上两条相邻的平行线间的距离相等,那末这个圆形小针投掷下来时,不是和一条直线相交两次,就是和两条相邻的平行线相切。
不管怎样,它的相交次数是2。
因此,当投掷的次数为n时,碰线的次数便是2n。
现在小针的长度只有两条相邻平行线间距离的一半,所以针的长度只有上述圆形小针长度(即圆周长)的。
但是可能碰线的次数是与针的长度成正比的,因此小针的可能碰线的次数k就必须满足下面的比例式:1:(1/2π) =2n: k于是就得到π=n/k,也就是π=投掷总次数/碰线次数这就是上面“投针实验”的理论根据。
它又叫莆丰氏实验,在概率论中是很出名的,也可以说是近代的“统计试验法”(又叫“蒙特卡罗法”)的滥觞。
蒲丰(Buffon)投针求π蒲丰(Buffon)投针问题:在平面上画有等距离的一些平行线,平行线间的距离为a(a>0),向平面上随机投一长为l (l<a)的针,针与平行线相交的概率P,结果发现π=2*l/(a*p)。
一、实验目的蒲丰实验是采用投针来计算π的值,历史上也有许多的学者曾亲自做过这个实验,如下表:我们也可以来做这个实验,而且希望做更多次,但是投针又比较费时费力,于是,可以采用另一种设计随机实验的方法,随机模拟的办法来模拟蒲丰投针实验。
从而求得π的近似值。
二、实验方法可以采用MatLAB软件进行模拟实验,即用MATLAB编写程序来进行“蒲丰投针实验”。
1.基本原理:由于针投到纸上的时候,有各种不同的方向和位置(图a),但是,每一次投针时,其位置和方向都可以由两个量唯一确定,那就是针的中点和偏离水平的角度(图b)。
随机投针图针的某一特定位置于是,我们可以生成两个n*1随机矩阵,分别设为x和y,x 表示此时针的中点的位置,y表示此时针偏离水平方向的角度。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、利用Matlab计算机语言验证蒲丰(Buffon)投针试验问题
给定a=10,b=5时,模拟100万次投针实验的Matlab程序如下:
a=10;
b=5;
n=1000000;
p=10; % a为平行线间距,b为针的长度,n为投掷次数,p为有效数字位数
x=unifrnd(0,a/2,[n,1]);
phi=unifrnd(0,pi,[n,1]); % 产生均匀分布的随机数,分别模拟针的中点与最近平行线的距离和针的倾斜角
y=x<0.5*b*sin(phi); m=sum(y); % 计数针与平行线相交的次数
PI=vpa(2*b*n/(a*m),p)
运行结果
PI =
3.138919145
二、利用C++计算机语言编程通过大量重复实验验证以下结论:三个阄,其
中一个阄内写着“有”字,两个阄内不写字,三人依次抓取,各人抓到“有”字阄的概率均为1/3。
程序如下:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void main()
{
int n=500000;
int i,a[3]={0};
srand(time(NULL));
for(i=0;i<n;i++)
a[rand()%3]++;
printf(
"共测试%d次,其中有字事件有%d次, 占%.2f%%\n"
"抓到无字事件1有%d次,占%.2f%%\n"
"抓到无字事件2有%d次,占%.2f%%\n"
"抓到无字事件共%d次,占%.2f%%",
n,a[0],a[0]*100.0/n,
a[1],a[1]*100.0/n,
a[2],a[2]*100.0/n,
a[1]+a[2],(a[1]+a[2])*100.0/n
);
return 0;
}。