极客小将

您现在的位置是:首页 » scratch编程资讯

资讯内容

第9课 随机探秘——数据的导出和分析

极客小将2019-08-29-
第9课 随机探秘——数据的导出和分析             任务导航色子恐怕是生活中最常见的随机现象了,本课,我们使用Scratch编写一个模拟投掷色子过程的小程序,让小猫说出色子上当前的点数,如图9.1所示。通过多次

9课 随机探秘——数据的导出和分析

            

任务导航

色子恐怕是生活中最常见的随机现象了,本课,我们使用Scratch编写一个模拟投掷色子过程的小程序,让小猫说出色子上当前的点数,如图9.1所示。通过多次模拟投掷色子的过程,获取数据,然后借助Excel来统计色子上每个点数出现的数目,研究随机现象的规律,如图9.2所示。

9.1 小猫说出色子的点数

9.2 数据汇总的结果(投掷300次)

 

任务分析

可以让一个角色说一个16之间随机的整数,来模拟投掷色子的过程。可以使用图9.3的代码让小猫说出当前的点数。

9.3 模拟掷色子的过程

程序的核心是随机数,虽然我们在前面多次使用过随机数,但是我们从来没有系统地研究过随机数这个重要的代码,比如取50016的随机数,每个整数的数目是不是都是50个?

 

想一想

       这是一个将程序作为研究工具的实验,首先要回答以下两个问题。

1)研究的问题:你研究的问题是什么?对问题的答案你有什么猜想?

2使用的工具:你准备如何研究这个问题?要获取多少组数据?如何存储这些数据?你打算如何分析这些数据?

   

Follow Me

1. 获取数据

获取多组数据常常需要使用链表来存储数据,如图9.4所示。

9.4 用链表结果来存储随机数

按空格300次不难获得300个随机数,那么,怎么知道其中有多少个1呢?

 

    2. 统计色子上每个点数出现的次数

统计色子上每个点数出现的次数可以采用很多种思路,如可以编一个程序来记录16个数据各出现多少次;或者使用数据处理软件,辅助完成统计的工作。

    在科学研究中,虽然程序理论上可以解决所有的数据处理的问题,但是有时候限于现有的编程水平,或者追求更快的速度,常常需要结合应用软件来完成数据处理工作。接下来介绍用Excel的排序功能来统计16出现的次数。

1步:在链表上右击,选择“输出”,如图9.5所示,在弹出的对话框中选择合适的存储位置,将链表数据输出为txt文件。

9.5 输出链表数据

2步:将txt文件中的数据复制粘贴在Excel中,如图9.6所示。

9.6 数据存储从链表转换到txt文件再到Excel

3步:将数据从小到大排列,如图9.7所示。

注意:在排列之前,请复制所有数据在工作表中,Sheet1用于保留原始数据。

9.7 将数据升序排列

4步:数出每个数字的个数

方法有很多,比如看左边的编号,或者选中所有的数字2的单元格,然后在Excel右下角会显示出当前单元格的数目,或者把所有编号为2的单元格剪切、粘贴在旁边的那一列。最终将数据汇总到Sheet3中,如图9.8所示。

9.8 数据汇总的结果

实验的结果和你之前的猜想一致么?和你周围的同学们比较一下,实验的结果相同么?

 

DIY

    可以通过改进代码,使用重复执行语句,增大数据量,让计算机自动生成600个随机数,代码如图9.9所示。

9.9  用重复执行语句生成600个随机数

 

想一想

1.你的猜想正确么?

2.是不是数据量越大,每个数字出现的数目占总数目的百分比就越接近?

3.为了获得更多的数据,能不能将其他同学的数据和自己的数据合并呢?

 

知识着陆

1.  脚本:将链表导出

2.  设计:从获取、分析数据的角度验证猜想

3.  编程习惯:多种软件共同使用提高效率

 

创作天地

1.有些同学提出绘制6个不同点数的筛子造型,用图9.10的代码来实现掷色子的效果,你也可以试一试。

9.10 用点数来模拟掷色子的过程

2.一位同学试图改进图9.10的代码,却出现了图9.11的效果,你能帮他修改正确么?

9.11 造型点数和说的点数不一致

3.使用插入柱形图按钮,可以将选中的数据生成柱形图,如图9.12所示,你也可以试一试。

9.12用柱形图来分析数据

 

 

视野拓展

编程的英文programming有“按照顺序作一件事”的意思,意思是说程序中任何代码都会经历一段时间,就连循环也不例外,你可以试着做一个小实验,按照图9.13所示的代码记录100组循环时间求出每次循环所用的时间

9.13 循环100次所需要的时间研究

链表直接导出成Excel文件,更改扩展名txtxls,实验发现一个空循环100次所需要的时间大约是2.5秒,每次循环大约需要0.025秒,你可以研究一下这100组数据的最大值和最小值是多少,并思考影响循环时间的影响因素。

懂得了这个道理,就不难理解图9.14所示的“秒表”程序为什么不能准确的计时了,事实上所有程序语言都有一个相对固定的循环时间,这是深入研究任何一门语言都要考虑的问题。

9.14秒表程序


网友点评

共有5条评论来说两句吧...

在线客服