Buffon掷针实验的计算机模拟实验的设计与实现
周浙泉,王志宇,张棣妍,隆超怡,万 勇
(长沙理工大学数学与统计学院,湖南 长沙 410114)
摘 要: 系统用Java作为开发工具,对蒲丰掷针实验进行计算机模拟实验,并能给出统计分析。
关键词: Buffon掷针实验;计算机模拟实验;Java
一、研究背景
18世纪,蒲丰(Buffon)提出Buffon投针问题:(1)取一张白纸,在上面画上许多条间距为a的平行线。(2)取一根长度为l(l≤a/2)的针,随机地向画有平行直线的纸上掷n次,观察针与直线相交的次数,记为m。(3)计算针与直线相交的概率。
蒲丰证明了这个概率是:
因为它与π有关,人们想到利用投针实验来估计圆周率的值。历史上,有不少人做过蒲丰掷针实验:
这个问题十分有趣,只是人工实验往往耗时、耗力,而用计算机模拟实验,却能迅速获得结果。
自从20世纪90年代美国率先开始数学实验以来,数学实验改变了人们传统的数学思维方式,人们发现数学是可以借助计算机去探索和发现的。近十年来,国内外已有不少的数学实验教材和一些好的数学实验范例,但是这需要一定的计算机编程能力,如mathematica编程、matlab编程等,才能实现人机对话,因此数学实验只能在具有一定数学知识和较高计算机编程能力的特定人群中使用,不能“飞入寻常百姓家”。
二、系统的设计
(1)双击打开,进入软件界面,如图1。
情感教学心理学专家卢家楣教授指出:“情调是一种最轻微、淡泊的情感状态,持续时间短。它往往没有明显的表情行为和生理变化,主要表现为主观体验。它通常伴随着知觉而油然发生,更多地受环境刺激的直接影响。”语文学科既是培养学生语言能力的学科,又是培养学生情感的学科。努力挖掘学生的情感因素,积极创设情境促进学生的情感体验和情感表达是语文学科的重要任务。多媒体能为学生创设一种优美的教学情境,使学生愉快地进入到课堂教学之中。
据哈里说,它能象征性地鞭挞白人所怀有的精神优越感,这种心理状态是历史所造成的,它已将非洲拖入野蛮的深渊。(2014:434)
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
2.系统运行情况。《Buffon掷针实验的计算机模拟实验系统》使用步骤如下:
Java是一个面向对象的语言。Java还包括一个类的扩展集合,分别组成各种程序包(Package),用户可以在自己的程序中使用。例如,Java提供产生图形用户接口部件的类(java.awt包),这里awt是抽象窗口工具集(abstract windowing toolkit)的缩写,处理输入输出的类(java.io包)和支持网络功能的类(java.net包)。
(3)点击“执行”按钮,这时中间的投针示意图中会显示针的位置,如图3。
威尼托主要的红葡萄品种有科维纳、罗蒂妮拉(Rondinella)和莫琳娜(Molinara)以及梅洛。用于酿造阿玛洛尼的主要葡萄品种就是科维纳。阿玛罗尼红葡萄酒是五大意大利著名葡萄酒“ABBBC”中的一员,也是威尼托产区最负盛名的葡萄酒。此酒虽然是干型,但常常尝起来有甜味,口感非常浓郁,酸度偏高,酒精度也较高,还带有黑樱桃、红糖和巧克力等香味,陈年潜力很高,很受重口味的酒客所偏爱。阿玛罗尼葡萄酒的酿造过程比普通葡萄酒复杂得多,它是用风干的葡萄酿造出来的干红葡萄酒。酿造一瓶阿玛罗尼葡萄酒所需要的葡萄是普通葡萄酒的两倍多,所以价格并不低。
在无功优化方法上,为解决电力系统无功优化中多约束与多变量、连续与离散变量共存等问题,众多学者对此展开了大量研究。近年来,如遗传[9]、免疫[10]、差分进化[11-12]、粒子群[13]等人工智能优化算法被大量用于求解无功优化问题,取得了许多成果。其中的差分进化算法(differential evolution,DE算法)是R.Storn和K.V.Price在1995年提出的一种进化算法[14],该算法在收敛性和鲁棒性方面均表现良好,适宜解决电力系统的各种优化问题。但是传统DE算法也存在盲目选择控制参数,且易陷入局部最优等不足。
三、系统的实现
1.系统主要功能。硬币实验的动画模拟,相交频率总汇图,π值估计总汇,导出数据到txt文件,重置。
以上用例中“绿色2”不仅限于作修饰成分,独立成词时也可反映与“保护地球、环境及其各种生物的安全和可持续性发展相关”的相关概念如(26)、(28),只是这一时期的“绿色 2”一般加注引号以示区别。但发展到2010年后不加注引号也能单独使用。例如:
Java看起来设计得很像C++,但是能够自动处理对象的引用和间接引用,实现自动的无用单元收集,使用户不必为存储管理问题烦恼,能将更多的时间和精力花在研发上。
本系统研发工具为Java语言。
(2)在“输入执行次数”文本框右边的输入框中输入透针次数,如图2。
Java编译程序生成字节码(byte-code),而不是通常的机器码。因此,Java支持快速原型和容易试验,它将导致快速程序开发。这是一个与传统的、耗时的“编译、链接和测试”形成鲜明对比的精巧的开发过程。
选取我院2014年~2015年收治的100例高龄股骨粗隆间骨折患者,随机将其分为观察组与对照组,两组各50例,观察组男26例,女24例,年龄64~86岁,平均(71.4±2.3)岁;对照组男27例,女23例,年龄63~84岁,平均(70.5±1.8)岁,两组患者基本资料比较;差异无统计学意义(P>0.05)。
(4)当实验结束时,在右边的折线图中会产生有实验结果的数据图。
(5)当想要再次实验时,可以再次输入你想要实验的次数,点击“执行”,重复上述步骤,即可得到实验结果。
图1 系统运行界面图
图2 系统当前实验板块输入截图
图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.
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
中图分类号: G642.423
文献标志码: A
文章编号: 1674-9324(2019)42-0269-02
收稿日期: 2018-12-05
基金项目: 长沙理工大学大学生研究性学习与创新性实验项目(1203058);长沙理工大学教研教改项目(CNJG201808)
作者简介: 周浙泉,王志宇,张棣妍(女),隆超怡(女),长沙理工大学信息与计算科学专业2014级学生;万勇(1963-),硕士研究生,教授,研究方向:几何分析与偏微分方程。