資源簡介 (共24張PPT)義務教育信息科技(2024)五年級 第1課時第四單元 發揮算法的優勢五年級上冊第14課 算法效率比一比12知道解決同一個問題可以有不同的算法,不同的算法具有不同的效率。.通過實例比較和算法分析,了解算法執行的關鍵步驟和執行次數,體會算法存在的效率差異。學習目標第14課 算法效率比一比這一課以簡單的累加運算為例,了解用不同算法解決同一問題的過程,認識其中存在的效率差異。第14課 課堂導入 一堆物體擺放如左圖所示,要統計有多少個,你能想到哪些方法? 這些方法有什么不同呢?問題情境第14課 學習活動三 感受不同算法的運算效率二 累加運算的效率分析學習活動用不同方法統計物體數量一一、用不同方法統計物體數量 要統計下圖所示物體的個數,常用的有兩種方法。 第一種算法觀察發現,物體共10層,從上到下,每層分別是1至10個。把物體逐層進行累加,就可以獲得物體個數。 1+2+3+4+5+6+7+8+9+10=55第14課 學習活動方法對比觀察圖形,發現可以用前面學習過的方法,即利用正反放置的兩個梯形組成平行四邊形,通過求平行四邊形中物體的個數來計算。平行四邊形中物體個數 = 每層個數×層數 = (1+10)×10 = 110個梯形中物體個數 = 平行四邊形中物體個數÷2 = 110÷2 = 55個第14課 學習活動第二種算法一、用不同方法統計物體數量方法對比依據上述計算方法,可以總結得到求解一組連續自然數累加之和的公式。 累加的和 =(第一個數+最后一個數)×數的總個數÷2例如,自然數從1到n的累加之和可以表示為:s = ( 1 + n )* n / 2因此,s = ( 1 + n ) * n / 2 = ( 1 +10 ) *10 / 2= 55第14課 學習活動一、用不同方法統計物體數量第二種算法方法對比通過比較發現:算法1簡單直觀,易于理解,算法2所用的步數較少,計算起來更快。 通過求“1+2+3+…+10”的兩種不同算法,說明解決同一個問題時,不同的算法會有不同的步驟,也就可能存在不同的效率。第14課 學習活動一、用不同方法統計物體數量方法對比 通常,用計算機解決問題時會用以下兩種方法來比較算法的效率。一是比較算法運行所需要的時間。二是比較算法運行時所需的步數或者占用的資源。二、累加運算的效率分析第14課 學習活動算法效率比較的方法 但是,如何衡量計算機在運行程序時所需的時間、執行的步數、占用的內存等,目前沒有統一的準則,所以通常選擇比較其中的一個方面。下面主要從時間上來進行分析。 大家聽過數學家高斯小時候計算“1+2+3+…+100”的故事吧?高斯使用第二種算法很快給出了答案,比所有其他孩子的速度都快。 時間對比第14課 學習活動 我們先來做一個“合理假設”:如果做1 次加法用時1秒、做1次乘法用時10秒、做1次除法用時15秒。二、累加運算的效率分析高斯怎么做的呢? 用第一種算法計算: 需要計算約99次加法,這樣即使每次加法只用1秒,而且每次中間相加的結果都正確,最終也需要大約99秒的時間才能計算出結果。 第14課 學習活動時間對比二、累加運算的效率分析 用第二種算法來計算:只需要1次加法(即100 + 1)、1次乘法(即101×100)和1次除法(即除以2),需要約1+10+15 = 26 秒。 單從計算步驟和時間上看,第二種算法似乎比第一種更高效。這就是在“合理假設”前提下,高斯比其他同學算得更快的一種解釋。第14課 學習活動時間對比二、累加運算的效率分析但是,問題并沒有那么簡單。因為做乘法和除法時,通常比做加法需要更長的時間。因此,如果以上“合理假設”并不成立。比如,如果做1次乘法或1次除法都需要50秒,那么用第二種算法所需時間就會變成1+50+50=101秒。 第14課 學習活動時間對比二、累加運算的效率分析 通過上述分析可知,從讓計算機解決問題的角度看,要準確地比較兩個算法究竟哪個更高效,往往比我們預想的要難很多。通常需要從數據量、步驟多少、所需時間等方面綜合考慮。 在設計算法用計算機解決問題時也是如此,通常需要經過多次的比較、實驗與探索來獲得結論。第14課 學習活動時間對比二、累加運算的效率分析第14課 學習活動三、感受不同算法的運算效率運算效率比較解決同一個問題通常可以用不同的算法,選擇不同算法并編程實現后,程序一般會在運算速度、計算精度等方面有不同的表現。下面通過用程序驗證上述累加運算的兩種算法,體會算法的效率差異以及不同程序實現引起的差異。“累加1.py”程序是用算式直接累加與用公式累加的對比。“累加2.py”程序是用循環結構實現累加與用公式累加的對比。第14課 學習活動三、感受不同算法的運算效率運算效率比較操作步驟如下。第1步:打開配套資源中的“累加1.py”程序,運行這個程序。第2步:輸入要重復執行的次數,觀察運行結果。例如,分別輸入500、1 000、10 000、100 000等,對比兩種算法所用的時間。第3步:打開配套資源中的“累加2.py”程序,運行這個程序。第14課 學習活動三、感受不同算法的運算效率運算效率比較第4步:輸入要重復執行的次數,觀察運行結果。例如,同樣分別輸入500、1 000、10 000、100 000等。第5步:嘗試用更多更大的數進行反復實驗。這樣經由多次數值實驗得出的結論會更加趨于穩定,也更加可靠。第6步:依據運行結果,對算法與程序實現的效率進行總結。1.解決同一個問題時,不同的算法會有不同的步驟,也就存在不同的效率。2.用計算機解決問題時,通常會從執行步驟、執行時間、內存占用等方面比較算法的效率。3.有些人計算起來較困難的問題,可以嘗試通過算法利用計算機來解決,充分發揮計算機的計算速度和存儲能力優勢。第14課 課堂總結計算圓周率的效率比較。圓周率作為數學中的一個重要常數,其更多位數的精確值求解一直是數學家們所追求的。我國南北朝時期的數學家祖沖之,經過刻苦鉆研和反復演算,推算出圓周率π的值在3.1415926和3.1415927之間,這一結果在當時已經非常精確。祖沖之通過其卓越的數學才能和不懈的努力,為數學的發展作出了重要貢獻。配套資源中有兩個計算圓周率的程序,打開這兩個程序并運行,對比計算圓周率的效率。第14課 拓展與提升提示:兩個程序分別采用了兩種不同的算法。算法117世紀,有學者找到了一種計算圓周率的方法。根據這個方法,只要計算足夠多的數據項,就可以獲得圓周率的近似值。算法2很多年后,又有學者提出了另一種計算圓周率的方法。同樣,只要計算足夠多的數據項,也可以得到圓周率的近似值。第14課 拓展與提升提示:運行第一個程序時需要的時間稍長,計算出來的圓周率精確到了3.1415左右。運行第二個程序時幾乎可以立刻得到計算結果,計算出來的圓周率的精確位數也更多。因此,依據算法2編寫的程序,所需計算時間更短、計算結果更精確,效率更高。實際上,第二個程序中的公式每多循環一次,通常可以多得到一位精確數字。第14課 拓展與提升下課啦! 展開更多...... 收起↑ 資源預覽 縮略圖、資源來源于二一教育資源庫