基于GeoGebra软件的随机模拟及比较,本文主要内容关键词为:软件论文,GeoGebra论文,此文献不代表本站观点,内容供学术参考,文章仅供参考阅读下载。
近年来,将GeoGebra软件(以下统称“GGB”)用于中小学甚至大学数学教学的探索和实践的机会越来越多.这款软件日益受到关注,一方面得益于GGB是免费软件,容易推广;另一个重要原因在于GGB既能动态探索几何问题,又能进行代数(符号)运算,还能处理数据.GGB的强大功能和魅力正被许多数学教师所认可,它在国际上获得的诸多奖项,应该说是实至名归. 随机模拟是解决概率问题的一个有效手段,计算机(器)和数学软件的有机结合,使这一手段如虎添翼.但在数学教学中如何恰到好处地运用信息技术,需要使用者的智慧.本文探讨的问题是,如何在GGB环境下做随机模拟?与其他软件相比,它有何优势和不足? 一、序列法 一维和二维的随机模拟问题,可利用GGB中的序列功能结合随机函数来实现.此法操作简单实用,模拟过程形象直观,演示效果较理想,在课堂上能够实时完成. 案例1:在图1中随机撒一大把豆子,计算落在圆中的豆子数与落在正方形中的豆子数之比,由此估计圆周率的值. 这是数学课程标准中提供的案例,属于平面内随机投点问题.通过随机函数在正方形内产生n个点,根据落点与圆心的距离统计落在圆内的点数a,最后由几何概型与概率的统计定义可知 操作步骤:(1)作正方形及其内切圆:在指令栏内输入“多边形[(1,-1),(1,1),4]”后确认,作出中心在原点且边长为2的正方形;指令栏内输入“”,作出上述正方形的内切圆. (2)建立参数:单击“参数”工具,设置参数n(撒豆数),最小值0,最大值100000,增量100. (3)撒豆:在指令栏内输入“序列[(2*random( )-1,2*random( )-1),i,1,n]”,得到n个有序数对(集合1),这些点随机出现在正方形内. (4)计数和估计:在指令栏内输入“条件计数”,其值为a;输入“4*a/n”,即得π的估计值. 拖动滑杆n,观察模拟的效果及估计的结果.图2为模拟次数当n=500时的效果. 【说明】(1)用“多边形”命令可画出任意正多边形.例如,“多边形[(1,-1),(1,1),5]”可以作出以A(1,-1),B(1,1)连线为一边的正五边形,同时在代数区显示此正五边形的面积. (2)建立参数另一个简单办法是在指令栏内直接输入“n=1”,再单击在代数区显示“n=1”前的空圈(此时变实圈),即在绘图区出现参数滑杆,右击滑杆在“属性”中可设置参数的初值. (3)随机函数“random( )”产生0~1之间的随机数,变换“2*random( )-1”产生-1~1之间的随机数.GGB还有一个“区间随机数[a,b]”,可产生a~b之间的随机整数. 上述模拟方法的优点是不需要编程,只需通过在指令栏内输入相应的指令(可在右下角的“指令说明”列表中双击获得),适于现场操作演示,可以激发学生运用GGB进行数学探索的热情.这种模拟的直观性体现在随机点的形数同步,即“数”显示在代数区的“集合1”中,“形”显示在绘图区中.许多一维(如抛硬币试验)和二维(如估计曲边形的面积)的模拟都可以用上述方法来实现. Excel中不借助编程实施上述模拟的方法是利用“工具/数据分析/随机数发生器”在第1列和第2列产生n个介于-1与1之间的均匀随机数,再利用条件函数“If( )”统计“好豆”数(如在第3列C1中输入“”,若是“好豆”,结果为1,否则为0.双击单元格C1的填充柄,将第3列累加即为“好豆”数),从而估计出π.用随机数发生器虽可批量产生一定要求(如均匀、离散或正态等)的随机数,但因模拟次数有限(不超过Excel的最大行数65536),故模拟结果有时不太理想.而且此法有“数”无“形”,撒豆的直观性没有GGB好. 在超级画板软件(以下统称Z+Z)的免费版本中,可通过“文本作图”命令实现撒豆和统计“好豆”的过程.但通过“测量表达式”和“符号函数”完成投豆次数与好豆次数的统计,读者会感到不习惯,也不容易理解. 比较而言,产生直线或平面上的随机点,用GGB模拟更容易,直观性和可操作性也更强. 二、编程法 利用计算机做随机模拟,若过分强调直观,则会影响模拟的效率和结果.另外,有些概率问题比较复杂,不易转化为一维或二维随机模拟问题,此时可借助编程来实现.编程模拟能极大地提高随机模拟的效率,解决问题的范围广,方法的移植性强.但编程模拟的不足同样明显,即对师生运用程序语言的能力要求较高. 案例2:杰克与马克玩一个投篮游戏,两人的投篮命中率均为50%.杰克先投,若投中则杰克赢,否则由马克投,若投中则马克赢,否则由杰克接着投,直到有一人投中为止.试问此游戏是否公平?若不公平,则杰克与马克赢得比赛的概率是多少? 该游戏的特点是重复和循环,但玩一次游戏需循环多少次并不确定,这类问题用编程来模拟就非常合适.GGB中的编程功能是通过“按钮”属性中的“脚本”来完成的. 操作步骤:(1)建立参数:单击“参数”工具,设置参数n,最小值0,最大值100000,增量100;在指令栏内直接输入“p1-0”和“p2-0”(这里建立的两个变量p1,p2用来表示杰克和马克获胜的概率). (2)设置按钮:选择工具栏中“按钮”命令,在“说明”(按钮标题)中输入“投篮游戏”. (3)编写程序:右击按钮,选择“属性/脚本”,在“单击时”标签中选择JavaScript,并键入“fun( );”,在“全局JavaScript”标签中键入以下脚本: function fun( ){n=ggbApplet.getValue(“n”); s=0,t=0; for(i=1;i<=n;i+ +) {do{if(Math.random( )>0.5){s++;f=0;}else if(Math.random( )>0.5){t++;f=0;}else{f=1;}} while(f!=0);} ggbApplet.setValue(“p1”,s/n); ggbApplet.setValue(“p2”,t/n);} (4)拖动参数n,单击按钮,可得到杰克和马克获胜概率的估计值.由图3可猜测杰克与马克获胜的概率分别为 【说明】(1)GGB中有GeoGebra脚本和Java脚本之分,一般用后者来编程.Java脚本中的随机函数为Math.random( ),它产生0~1间的随机数.Java语言中的条件语句为“if( ){}else{}”,循环语句有while循环“while( ){}else{}”,do-while循环“do{}while( );”以及for循环“for( ){}”.ggbApplet.get-Value(“n”)和ggbApplet.setValue(“p1”,s/n)相当于输入和输出语句,前者获得代数区中参数n的值,可以增强程序的交互性,后者将程序运行的结果s/n赋给代数区中的变量p1. (2)计算机随机模拟使我们不需要太多的数学知识和思维技巧就能解决像案例2这样看似复杂的问题.当然,计算机模拟的另一个目的应该是激发学生进一步思考和探索待求问题的数学本质.要借助信息技术,为学生提供有挑战性的且可以互动交流的数学学习环境,即保持应有的数学思考水平和强度,促进学生积极地思维参与.对本例而言,从直觉来看,游戏的不对称性可能使学生意识到游戏的不公平.从几何表征来看,可画出游戏图或面积图(如图4,杰克所占的面积是马克的两倍, 在Excel中,按Alt+F11进入VB编辑器,创建“投篮游戏”程序,按图6输入后按F5运行程序,即可模拟获得杰克和马克获胜的概率. 在Z+Z中,程序工作区提供了编程环境,输入相应的程序也可获得杰克获胜概率的估计值. 从实际运行的效率来看,Excel和GGB程序运行速度快且效率高,Z+Z的执行效率低.另外,GGB与Z+Z对语言的规范及细节要求较高(如特有的关键词,区别大小写等),同时缺少必要的帮助信息. 比较而言,Excel的VBA语言通俗易懂,而GGB的Java语言和Z+Z的VC语言,运用的要求相对较高.因此,编程模拟时可优先考虑使用Excel,不仅师生相对熟悉,软件共享性好,而且Excel能方便地将模拟的结果保存到工作表中,有利于学生观察随着试验次数的增加,频率逐渐稳定在某个常数附近的过程.通过编写程序并在计算机上运行,无疑会加深学生对算法以及原问题的理解. 三、反思与启示 在数学教学中运用信息技术要注意两种倾向:一是偏爱功能较单一的软件,不论遇到什么问题都设法用该款软件来解决.例如,用几何画板软件做随机模拟,就是以己之短攻彼之长的做法,不可取.另一种倾向是,只用像GGB和Z+Z这种兼有代数、几何和数据处理功能的软件,以期一网打尽或一劳永逸地解决所有的问题,同样不可取. 从本文可以看到,用GGB做随机模拟要比Z+Z的效果好,但如果需要编程做随机模拟,则Excel更合适.然而,做迭代或建立自定义工具以拓展探索空间时,GGB和Z+Z都不如几何画板软件来得方便.因此,在将现代信息技术运用于数学教学时,要注意各款软件的长处与不足,毕竟尺有所短,寸有所长,只有知己知彼,扬长避短,才能有效地用好相应的软件,才能真正提升信息技术与数学课程整合的效果.标签:数学论文; geogebra论文; 随机数论文; 按钮论文;