自己动手求圆周率

2016-03-11 01:04龚卫东
高中数理化 2016年1期
关键词:概型圆周率豆子

自己动手求圆周率

◇广东龚卫东

1问题来源及产生过程

高中数学必修3算法部分,有这样一道试题:

图1

图1是用模拟方法估计圆周率π的程序框图,P表示估计结果,则图中空白框内应填入().

AP=N/1 000;

BP=4N/1 000;

CP=M/1 000;

DP=4M/1 000

初次接触此类问题,同学们会有一定困难,经过老师讲解,明白该算法实际就是几何概型中随机“撒豆子”模型,通过面积测度比求得圆周率,是一个由“形”到“数”的过程.

此方法引起同学们极大兴趣,而且从小就知道祖冲之发现圆周率的故事,π在古今中外数学史上名声赫赫,现在有算法指出这种方法能求π的值,既兴奋又很想亲身实践,看看自己求出的圆周率与数学先贤有什么不同.

2研究性学习过程

2.1 探究1

现在当然不用再像祖冲之一样在院子里画一个大圆,一点一点实地测量. Excel软件自带有VBA程序设计功能. VBA(Visual Basic for Application)是现在可用的最容易学习、最容易使用同时也是最复杂的应用程序自动化语言(过去常常称为宏语言)之一,即使以前从来没有编写过程序,也能够使用VBA语言开发出解决方案.

方法1对学生而言,学习过流程图之后再学习VBA语言,并非难事,无非是学习几个具体的输入、输出及循环语句,并掌握好语法格式的问题. 事实上,学生很快就将问题中的框图编成了程序. 在Excel中,打开“宏”,创建名为“撒豆子”的宏,按F5运行,得到输出结果π=3.136 (图2、图3).

图2

图3

该程序实现“撒豆子”的关键,是使用了随机函数RND,它会随机产生一个(0, 1)之间的数.

图4

方法2在Excel中,不编程也可用随机函数分别选取横、纵坐标x、y,统计x2+y2<1的坐标数,由比值求π.

图5

上述2种方法都借助信息技术手段轻松完成了1 000次的数学实验,模拟几何概型“撒豆子”,其原型是布冯投针实验. 1777年,法国数学家布冯(G.L.L.Buffon,1707—1788年)做了一个投针实验,这个实验被认为是几何概型的第一个实验. 他在一张大纸上画了一些等距的平行线,再把长度等于相邻平行线距离一半的针投到纸上,共计投针2212次,统计出有704次与平行线相交,它们的商2 212÷704≈3.142045,与π非常接近.以后又有多位数学家做过类似实验,得到相近结果. 可以证明,针长取平行线间距的一半时,投针次数与针线相交次数的比值在π附近摆动.

2.2 探究2

学生对自己动手实验得到结果感到欣喜的同时,对结果的精度尚不能满意. 究其原因,估计是“豆子”数量太少的缘故. 方法2中,可以拖动“+”使得各列数据相应增加,如增加到10 000组,唯一缺点是数表变得很长. 对电脑来讲,倒也不算什么难事,只是数据精度仍不尽如人意,得到的π值是4×0.7833=3.1332(如图6).

图6

怎样才能体验到古代数学家探寻圆周率时不断提高精度的成功?当然可以继续向下拖动数表中各列数据,通过尝试似乎成效不大. 回到方法1,在原题流程图中,限定实验次数是1 000,如果改进程序,让循环次数依靠输入决定,就可以设定希望的循环次数,而且还能看到循环次数与结果精度之间的关系.

改进的程序和部分运算结果如图7、8所示.

图7

图8 (n=10 000)

当n=100 000时,结果为3.138 48;当n=1 000 000时,为3.143 714. 发现循环次数越高,即模拟次数越多,结果的精度也越高.

2.3 探究3

上面探究的精度依然没有达到让人欣喜若狂的程度.继续增加循环次数吗?事实上,当循环次数为100万的时候,英特尔I5处理器的台式电脑运行图7的程序已经花费了33 s,让人等结果时都有些心焦. 能不能从方法上再挖掘一下?

图9

图4中阴影部分与正方形面积的比值,就应该等于π.通过分析发现,精度不高的主要原因,其实是由于模拟实验“撒豆子”——也就是产生随机数的过程,是带有很强随机性的,是否落在阴影中随不同实验可能有不同结果. 根据这个情况,大胆改进布冯实验的思想,依然采用几何概型的面积方法,但不用随机函数,而是采用“匀铺”的办法,在区域内均匀地一个一个地把点“摆”上去,统计阴影部分点的个数,用点的个数比替代面积比(如图9).

图10中程序实际上将边长为1的正方形划分成m×n条线,每个交点均匀分布在区域之内,每个点是否在阴影部分是确定的,避免了随机试验的不确定性.程序中语句s=s+m的功能,是将圆弧上的点计算在阴影内部.

图10

图11

按F5运行程序,输入m、n的值,得到不同的π的近似值. 当m=1 000,n=100时,得π≈3.158 16;当m=1 000,n=1 000时,得π≈3.141 528;m=10 000,n=10 000时,得π≈3.141 590 24(如图11).

终于得到了较为满意的结果,而且,只要每次输入的m和n的值相同,程序运算结果都一样,不会因为随机性而改变. 此时在1×1的正方形内,“匀铺”了1亿个点!

3研究成果与启示

上述探究都来自于一道算法试题和布冯投针实验,通过这些探究,学生明白,数学也是可以做实验的!信息技术不仅能在数形结合中让我们把抽象的数通过形来展示清楚,也可以通过“形”反过来求“数”,利用几何概型的这种数学思想很奇妙. 学生也进一步理解了算法思想,形成了编程探究一些问题结果的意识和能力.

当然,现在求圆周率的方法其实有很多,学生可以自己上网检索,学习了解.

(作者单位:广东省深圳市高级中学)

猜你喜欢
概型圆周率豆子
夹豆子
从不同侧面求解古典概型
祖冲之计算圆周率
说说圆周率
高考中的古典概型
几何概型审题技巧
古典概型和几何概型辨析
我和小豆子
“好玩”的圆周率的好伙伴
开心豆子 等