Buffon掷针实验的计算机模拟实验的设计与实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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 是一个面向对象的语言。
Java 还包括一个类的扩展集合,分别组成各种程序包(Package ),用户可以在自己的程序中使用。
例如,Java 提供产生图形用户接口部件的类(java.awt 包),这里awt 是抽象窗口工具集(abstract windowing toolkit )的缩写,处理输入输出的类(java.io 包)和支持网络功能的类( 包)。
Java 编译程序生成字节码(byte-code ),而不是通常的机器码。
因此,Java 支持快速原型和容易试验,它将导致快速程序开发。
这是一个与传统的、耗时的“编译、链接和测试”形成鲜明对比的精巧的开发过程。
三、系统的实现1.系统主要功能。
硬币实验的动画模拟,相交频率总汇图,π值估计总汇,导出数据到txt 文件,重置。
2.系统运行情况。
《Buffon 掷针实验的计算机模拟实验系统》使用步骤如下:
(1)双击打开,进入软件界面,如图1。
(2)在“输入执行次数”文本框右边的输入框中输入透针次数,如图2。
(3)点击“执行”按钮,这时中间的投针示意图中会显示针的位置,如图3。
(4)当实验结束时,在右边的折线图中会产生有实验结果的数据图。
(5)当想要再次实验时,可以再次输入你想要实
周浙泉,王志宇,张棣妍,隆超怡,万勇
(长沙理工大学数学与统计学院,湖南长沙410114)
摘要:系统用Java 作为开发工具,对蒲丰掷针实验进行计算机模拟实验,并能给出统计分析。
关键词:Buffon 掷针实验;计算机模拟实验;Java 中图分类号:G642.423
文献标志码:A
文章编号:1674-9324(2019)
42-0269-02
图1系统运行界面图图2系统当前实验板块输入截图
The Design and Implementation of Computer Simulation Experiment for Buffon's Needle Throwing Experiment
ZHOU Zhe-quan,WANG Zhi-yu,ZHANG Di-yan,LONG Chao-yi,WAN Yong
(School of Mathematics and Statistics,Changsha University of Science and Technology,Changsha,Hunan
410114,China)
Abstract:The system is exploited by using Java,and it can be used for processing computer simulation for Buffon's Needle Throwing Experiment and give statistics analyse.
Key words:Buffon's needle throwing experiment;computer simulation;Java
验的次数,点击“执行”,重复上述步骤,即可得到实验结
果。
图3系统实验结果的柱状图、板块截图
四、结论
本系统光盘储存,携带方便,能在PC 机上实验,实验简单、方便、快捷,并给出统计数据。
本系统不要求实验操作者具备任何计算机编程能力,真正做到了数学实验“飞入寻常百姓家”。
本系统可作为“概率论与数理统计”(大、中学)课程的配套实验,以激发学生学习“概率论与数理统计”的兴趣。
本系统成果论文获湖南省数学学会2018年年会
暨第30届大学数学教学研讨会“优秀论文”二等奖。
参考文献:
[1]高志伟.Authorware 课件做作动态指导[M].北京:机械工业出版社,2003:1-299.
[2]吕晓鹏.精通Flex3.0基于Actionscripe 3.0实现[M].北京:人民邮电出版社,2008:7-300.
[3]谭浩强.C 程序设计[M].第3版.北京:清华大学出版社,2005:1-180.
[4]印旻.Java 与面向对象程序设计教程[M].北京:清华大学出版社,1999:1-260.。