資訊內(nèi)容
第9課 隨機(jī)探秘——數(shù)據(jù)的導(dǎo)出和分析
第9課 隨機(jī)探秘——數(shù)據(jù)的導(dǎo)出和分析
任務(wù)導(dǎo)航
色子恐怕是生活中最常見的隨機(jī)現(xiàn)象了,本課,我們使用Scratch編寫一個(gè)模擬投擲色子過程的小程序,讓小貓說出色子上當(dāng)前的點(diǎn)數(shù),如圖9.1所示。通過多次模擬投擲色子的過程,獲取數(shù)據(jù),然后借助Excel來統(tǒng)計(jì)色子上每個(gè)點(diǎn)數(shù)出現(xiàn)的數(shù)目,研究隨機(jī)現(xiàn)象的規(guī)律,如圖9.2所示。
圖9.1 小貓說出色子的點(diǎn)數(shù)
圖9.2 數(shù)據(jù)匯總的結(jié)果(投擲300次)
任務(wù)分析
用可以讓一個(gè)角色說一個(gè)1到6之間隨機(jī)的整數(shù),來模擬投擲色子的過程。可以使用圖9.3的代碼讓小貓說出當(dāng)前的點(diǎn)數(shù)。
圖9.3 模擬擲色子的過程
程序的核心是隨機(jī)數(shù),雖然我們?cè)谇懊娑啻问褂眠^隨機(jī)數(shù),但是我們從來沒有系統(tǒng)地研究過隨機(jī)數(shù)這個(gè)重要的代碼,比如取500個(gè)1到6的隨機(jī)數(shù),每個(gè)整數(shù)的數(shù)目是不是都是50個(gè)?
想一想
這是一個(gè)將程序作為研究工具的實(shí)驗(yàn),首先要回答以下兩個(gè)問題。
(1)研究的問題:你研究的問題是什么?對(duì)問題的答案你有什么猜想?
(2)使用的工具:你準(zhǔn)備如何研究這個(gè)問題?要獲取多少組數(shù)據(jù)?如何存儲(chǔ)這些數(shù)據(jù)?你打算如何分析這些數(shù)據(jù)?
Follow Me
1. 獲取數(shù)據(jù)
獲取多組數(shù)據(jù)常常需要使用鏈表來存儲(chǔ)數(shù)據(jù),如圖9.4所示。
圖9.4 用鏈表結(jié)果來存儲(chǔ)隨機(jī)數(shù) |
按空格300次不難獲得300個(gè)隨機(jī)數(shù),那么,怎么知道其中有多少個(gè)1呢?
2. 統(tǒng)計(jì)色子上每個(gè)點(diǎn)數(shù)出現(xiàn)的次數(shù)
統(tǒng)計(jì)色子上每個(gè)點(diǎn)數(shù)出現(xiàn)的次數(shù)可以采用很多種思路,如可以編一個(gè)程序來記錄1到6個(gè)數(shù)據(jù)各出現(xiàn)多少次;或者使用數(shù)據(jù)處理軟件,輔助完成統(tǒng)計(jì)的工作。
在科學(xué)研究中,雖然程序理論上可以解決所有的數(shù)據(jù)處理的問題,但是有時(shí)候限于現(xiàn)有的編程水平,或者追求更快的速度,常常需要結(jié)合應(yīng)用軟件來完成數(shù)據(jù)處理工作。接下來介紹用Excel的排序功能來統(tǒng)計(jì)1到6出現(xiàn)的次數(shù)。
第1步:在鏈表上右擊,選擇“輸出”,如圖9.5所示,在彈出的對(duì)話框中選擇合適的存儲(chǔ)位置,將鏈表數(shù)據(jù)輸出為txt文件。
圖9.5 輸出鏈表數(shù)據(jù)
第2步:將txt文件中的數(shù)據(jù)復(fù)制粘貼在Excel中,如圖9.6所示。
圖9.6 數(shù)據(jù)存儲(chǔ)從鏈表轉(zhuǎn)換到txt文件再到Excel中 |
第3步:將數(shù)據(jù)從小到大排列,如圖9.7所示。
注意:在排列之前,請(qǐng)復(fù)制所有數(shù)據(jù)在工作表中,Sheet1用于保留原始數(shù)據(jù)。
圖9.7 將數(shù)據(jù)升序排列 |
第4步:數(shù)出每個(gè)數(shù)字的個(gè)數(shù)
方法有很多,比如看左邊的編號(hào),或者選中所有的數(shù)字2的單元格,然后在Excel右下角會(huì)顯示出當(dāng)前單元格的數(shù)目,或者把所有編號(hào)為2的單元格剪切、粘貼在旁邊的那一列。最終將數(shù)據(jù)匯總到Sheet3中,如圖9.8所示。
圖9.8 數(shù)據(jù)匯總的結(jié)果
實(shí)驗(yàn)的結(jié)果和你之前的猜想一致么?和你周圍的同學(xué)們比較一下,實(shí)驗(yàn)的結(jié)果相同么?
DIY
可以通過改進(jìn)代碼,使用重復(fù)執(zhí)行語句,增大數(shù)據(jù)量,讓計(jì)算機(jī)自動(dòng)生成600個(gè)隨機(jī)數(shù),代碼如圖9.9所示。
圖9.9 用重復(fù)執(zhí)行語句生成600個(gè)隨機(jī)數(shù) |
想一想
1.你的猜想正確么?
2.是不是數(shù)據(jù)量越大,每個(gè)數(shù)字出現(xiàn)的數(shù)目占總數(shù)目的百分比就越接近?
3.為了獲得更多的數(shù)據(jù),能不能將其他同學(xué)的數(shù)據(jù)和自己的數(shù)據(jù)合并呢?
知識(shí)著陸
2. 設(shè)計(jì):從獲取、分析數(shù)據(jù)的角度驗(yàn)證猜想
3. 編程習(xí)慣:多種軟件共同使用提高效率
創(chuàng)作天地
1.有些同學(xué)提出繪制6個(gè)不同點(diǎn)數(shù)的篩子造型,用圖9.10的代碼來實(shí)現(xiàn)擲色子的效果,你也可以試一試。
圖9.10 用點(diǎn)數(shù)來模擬擲色子的過程 |
2.一位同學(xué)試圖改進(jìn)圖9.10的代碼,卻出現(xiàn)了圖9.11的效果,你能幫他修改正確么?
圖9.11 造型點(diǎn)數(shù)和說的點(diǎn)數(shù)不一致 |
3.使用插入柱形圖按鈕,可以將選中的數(shù)據(jù)生成柱形圖,如圖9.12所示,你也可以試一試。
圖9.12用柱形圖來分析數(shù)據(jù) |
視野拓展
編程的英文programming有“按照順序作一件事”的意思,意思是說程序中任何代碼都會(huì)經(jīng)歷一段時(shí)間,就連循環(huán)也不例外,你可以試著做一個(gè)小實(shí)驗(yàn),按照?qǐng)D9.13所示的代碼記錄100組循環(huán)時(shí)間求出每次循環(huán)所用的時(shí)間
圖9.13 循環(huán)100次所需要的時(shí)間研究
鏈表直接導(dǎo)出成Excel文件,更改擴(kuò)展名txt為xls,實(shí)驗(yàn)發(fā)現(xiàn)一個(gè)空循環(huán)100次所需要的時(shí)間大約是2.5秒,每次循環(huán)大約需要0.025秒,你可以研究一下這100組數(shù)據(jù)的最大值和最小值是多少,并思考影響循環(huán)時(shí)間的影響因素。
懂得了這個(gè)道理,就不難理解圖9.14所示的“秒表”程序?yàn)槭裁床荒軠?zhǔn)確的計(jì)時(shí)了,事實(shí)上所有程序語言都有一個(gè)相對(duì)固定的循環(huán)時(shí)間,這是深入研究任何一門語言都要考慮的問題。
圖9.14秒表程序

- 上一篇
第8課 神圣一票—變量和數(shù)據(jù)可視化
第2單元 數(shù)字科學(xué)家 在數(shù)字科學(xué)家這個(gè)單元,我們會(huì)將Scratch作為一個(gè)研究工具來使用。本單眼的核心概念是“數(shù)據(jù)”,如何獲取數(shù)據(jù)、怎么存儲(chǔ)數(shù)據(jù)、用什么工具分析數(shù)據(jù)、數(shù)據(jù)呈現(xiàn)的穩(wěn)定的結(jié)論應(yīng)該如何表達(dá)。期望同學(xué)們能夠通過本章的學(xué)習(xí),掌握初步的科學(xué)研究方法。本章的
- 下一篇
第10課 統(tǒng)計(jì)集成——自動(dòng)生成柱狀圖
第10課 統(tǒng)計(jì)集成——自動(dòng)生成柱狀圖 任務(wù)導(dǎo)航在上一課中,我們研究了“從1到6間隨機(jī)選一個(gè)數(shù)”這個(gè)代碼,數(shù)據(jù)分析的環(huán)節(jié)是用Excel完成的,我們是否需要在Scratch中編寫一個(gè)軟件來完成數(shù)據(jù)的分析呢?這相當(dāng)于編寫一個(gè)科學(xué)研究