数字化工具在引导高中生探究数理知识上的应用
2022-12-26陆韵江苏省南京市雨花台中学
陆韵 江苏省南京市雨花台中学
● 蒲丰投针实验原理简介
蒲丰投针实验是一个出现在多本中学数学教材中的经典几何概型实验,其实验过程是在平面上画一组间距为a的等距平行线,然后向此平面随机投掷一些长度为l(l≤a)的针,当时,针与平行线相交概率P为。在教学过程中,笔者发现学生对随机投针之后,针与平行线相交的概率近似为圆周率的倒数这一现象非常感兴趣,这一现象背后的原理如下:
如图1所示,设针的中点为M,M到与之最近的平行线的距离为针与平行线的夹角为α,α∈(0,π),X与α相互独立。当针的中点与最近的平行线满足以下条件时两者相交,即
图1
蒲丰投针实验中每一次投针都可以看作是一个点,将针中点到最近的平行线的距离作为横坐标,将针与平行线的角度作为纵坐标画出图像,大量投针所产生的点组成如图2所示的长度为π、宽度为的矩形。
图2
当点落在图中余弦图像与纵轴围成的半圆弧内时,针和平行线相交,令矩形面积为S1,小半圆型面积为S2,两者的比值是:当时,通过化简可得
● 使用网络画板模拟蒲丰投针实验
1.网络画板基本功能
网络画板是一款几何构图软件。它使用简单,无需下载,在网页端使用软件自带的坐标系和画笔工具就可以构造出常见的几何图形和坐标系,可以进行2D、3D作图,也可以做出许多复杂的动画效果。使用网络画板模拟蒲丰投针实验的步骤包括设置随机投针过程、针的数量和长度,相交针的数量统计以及π值的估算等环节,具体步骤如下表所示。
2.基于网络画板的蒲丰投针实验使用效果分析
图形化界面能够让使用者直观地进行创作,对于不具备编程基础的学生和教师来说较为友好,但是存在如下几个问题。
第一,网络画板的编辑调试和运行在同一个界面,制作较为复杂的动画时界面显得十分拥挤。例如,在下页图3中,如果要将投针实验对应的几何概型图(在图片右侧)同步呈现出来,画面就会变得凌乱,参数和表达式只能插空放置。
图3
第二,网络画板的编辑和运行在同一个界面,增加了误操作的几率。例如,在使用时,学生容易误以为直接调整变量n的值,就能改变投针的总数量,但实际上,这样的设置是无效的,变量n只会客观反映当前被投掷的针的数量,如果要改变总的投针数量必须对投掷动画进行重新设置,改变它的起止值。
第三,网络画板调试纠错的难度较大,在编辑时,每一步都会创建一个或者多个对象,程序运行顺序按照对象创建的顺序从上到下逐一进行,对象之间的顺序无法随意调整,如有一步遗漏,则需要删除多个步骤进行重新编辑。如果想实现较为复杂的投针效果,如对相交与不相交的针分别设置不同颜色就需要学生在创作时进行较为完整的思考,确定每一个环节的先后顺序,否则,随着程序复杂性的提高,纠错和调试会变得越来越困难。
步骤 功能 备注1 画出若干间隔为1的平行线段 线段功能 在示例程序中绘制了7条长度为10的平行线,以此为基础,随机产生的针的端点坐标范围应该在(0,0)到(10,7)之间2 设置投针数量和针长两个变量 变量功能 可以使用快捷键Ctrl+shift+P 3 随机产生每一根针端点A的坐标 计算功能直角坐标点功能横坐标m000: random(0, 10) * l ^ n纵坐标m001: random(0, 7) * l ^ n注:n为投针的总数量4 随机产生一个(0,π)的角度 计算功能 M002: random(0, pi) * l ^ n 5 计算每一根针端点B的坐标 计算功能直角坐标点功能横坐标M003:m000 + l * cos(m002)纵坐标M004:m001 + l * sin(m002)注:l为针的长度6 判断是否与已有线段相交 变量功能计算功能M006:if(floor(m001) != floor(m004), 1, 0)注:因为平行线对应的函数是y=1、y=2……y=7,如果针的两个端点纵坐标的整数部分不等于同一个整数,那么这根针必与某条平行线相交7 相交针的数量统计 计算功能 M007:abs(sign(n)) * m006 + m006 8 π值的估算 计算功能 a/M007 9 用线段连接A,B两点 线段功能 选中A,B两点,在基础设置中点选跟踪10 设置初始化动画 动画功能 设置动画文本为初始化,序列为并行,类型为一次,次数为0,变量为n,起止皆为0,步数和间隔都是1 11 设置投掷动画 动画功能 设置动画文本为初始化,序列为并行,类型为一次,次数为0,变量为n,起为0,止为1000,步数为1000,间隔为1
● 使用Python实现蒲丰投针实验
1.Python及常见第三方库介绍
Python是一种使用广泛的编程语言,是当前多个版本的高中信息技术教材中的必修内容。NumPy(Numerical Python)是Python语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。Matplotlib是一个用于绘图的Python扩展程序库,可以用来绘制各种静态、动态交互式的图表。它能让使用者很轻松地将数据图形化,并且提供多样化的输出格式。使用Python语言并调用NumPy和Matplotlib库同样能够模拟蒲丰投针实验。
使用Python模拟蒲丰投针实验并展示几何概型图像的程序可分为以下几个步骤(如图4):①画出若干条等距的平行线,本文中的演示代码以两条平行线为例;②利用随机函数random()产生每根针中心点的坐标和角度;③使用第一节中提到的关系式(1)判断针和平行线是否相交,即当针的中点与最近的平行线的距离小于等于针长的一半乘以针与平行线夹角的余弦值时两者相交;④根据相交情况画出投针图像和几何概型动图;⑤根据相交针的数量和投针总数估算π的值。
图4
网络画板必须按照“画坐标系和平行线——随机产生针的端点坐标——判断点是否与平行线相交”这一顺序进行设置。在编写Python程序时,以上步骤可以分别设置为一个函数(如图5),在确定需要用到的变量、函数名和参数格式后,学生可自由选择函数编写的先后顺序,甚至可以多人合作编写,最后再将多人合作的成果组合起来,通过调用各个函数完成模拟投针程序的制作。
图5
2.基于Python的蒲丰针实验使用效果分析
使用Python对蒲丰投针实验进行模拟解决了上文提到的编辑调试和运行处于同一个页面从而使用户可能会误操作的问题。Python中代码编辑和运行分开,使用input()函数接收用户输入。在程序开始运行后,用户在shell命令行中能够看到明确的提示,根据提示输入想要模拟投针的数量和针的长度,即可开始运行程序。
在编写程序时,各个步骤中要实现的效果均可在函数中详细定义,不需要在界面的各处进行设置(这样容易出现遗漏)。Python的报错信息详细,可以据此进行程序调试,但是在网络画板中只能通过观察图像出现的异常推测可能出现的错误。
● 对比结论与教学建议
1.对比结论
无论是网络画板还是Python都能对蒲丰投针实验进行较高程度的模拟,通过模拟投针过程,特别是利用程序判断针与平行线是否相交这一步骤,能够让学生深入理解该实验背后的数学原理,学生在修改针的数量和长度、观察估算值变化的过程中,能够更加直观地理解几何概型。
从程序编写的角度来说,网络画板更好上手,几乎不需要使用者具有编程基础,而使用Python进行实验就需要使用者具有一定的编程功底。从使用体验上来说,网络画板更加直观,但是如果要实现较为复杂的效果,编写和调试就会变得非常困难。Python在交互上更友好,将程序编写和运行界面分开,投针效果更加逼真,重点突出,而且在程序开始运行之后,能够根据程序给出的提示设置投针数量和长度。另外,Python有良好的开发生态,功能更加强大,通过使用第三方库能够实现很多网络画板没有的功能。根据广东教育出版社教材中已有的项目案例,利用Matplotlib能够对散点进行拟合,从而帮助学生发现坐标点之间的隐藏规律。最后,作为信息技术课程必修教材中的一个实验,使用Python能够激发学生对算法、程序设计语言以及数据可视化学习的兴趣,与后续章节的学习内容紧密相联。
2.教学建议
在进行广东教育出版社必修一第二章“蒲丰实验”的教学时,建议教师先使用网络画板让初次接触该实验的学生快速进行模拟投针,体验数字化创新学习的过程。在完成算法、程序设计语言、数据可视化部分的学习之后,教师可以将基于Python的蒲丰投针实验作为一次项目化学习主题,从观察投针现象入手,运用多种途径探究现象背后的原理,在理解原理的基础上引导学生思考构建这样一个投针的程序需要哪些步骤,最后以小组为单位完成部分代码的编写,从而模拟蒲丰投针的过程。在这个项目中,先后使用两种数字化工具完成同一个实验能让学生充分体验数字化学习工具和途径的多样性,提升学生数字化学习与创新的能力。
使用数字化工具模拟蒲丰投针实验只是在培养学生数字化学习与创新这一核心素养时能够使用的案例之一,在高中数学、物理、化学等多个学科中都可以使用Python、网络画板等数字化工具帮助学生探索规律,加深对知识的理解。