資源簡介 (共19張PPT)微項目3用迭代算法探究數據變化的規律Phthon編程------3迭代算法學習目標1.本項目的核心是理解迭代思想并運用循環結構完成迭代算法的編程實現,掌握迭代變量、迭代表達式的識別技巧,學會利用迭代算法設計程序進行問題推導。2.迭代算法的關鍵是:識別迭代變量建立迭代表達式控制迭代過程跳繩是一項簡單易行的體育運動。為了增強體質,甲乙兩位同學各自制訂了循序漸進的鍛煉方案。甲同學決定第一天跳繩100下,第二天開始每天增加5下。乙同學也決定第一天跳繩100加10下。兩位同學按照上述方案鍛煉30天,各自的總運動量是多少下 看看誰的總運動量大。活動1 觀察數據累加的迭代算法乙同學訓練日志第一天: 100第二天: 100第三天: 110第四天: …..….甲同學訓練日志第一天: 100第二天: 105第三天: 110第四天: ……1 觀察數據累加規律甲同學決定第一天跳繩100下,第二天開始每天增加5下。乙同學也決定第一天跳繩100下,以后每隔一天增加10下。甲同學每天的跳繩次數(用a表示):al=100 #第1天a2=a1+5 #第2天a3=a2+5 #第3天2.初步設計迭代算法 ——模擬 第一次 迭代乙同學每天的跳繩次數(用b表示):bl=100 #第1天b2=b1 #第2天b3=b2+10 #第3天迭代:是用舊值重復推出新值的過程。每一次迭代得到的結果會作為下一次迭代的初始值,如此一步步逼近所尋求的目標或得到需要的結果。迭代關系b1=100 #第1天b2=b1 #第2天b3=b2+10 #第3天al=100 #第1天a2=a1+5 #第2天a3=a2+5 #第3天#!/usr/bin/onv python3#甲同學每天的跳繩次數al=100 #第1天a2=al+5 #第2天a3=a2+5 #第3天#乙同學每天的跳繩次數b1=100 #第1天b2=b1 #第2天b3=b2+10 #第3天#顯示甲乙同學3天跳繩的總數print(“甲同學3天共跳繩:,al+a2+a3,“下”)print("乙同學3天共跳繩:",b1+b2+b3,“下”)思考:嘗試繼續編寫程序計算前10天的跳繩總數,程序需要編寫多少行?(2)體驗迭代算法程序----順序結構使用順序結構描述送代雖然直觀,但編程及程序運行效率低,當迭代次數較多時,使用順序結構就顯得力不從心。可以嘗試采用循環結構程序實現迭代算法。累計跳繩總數。在構造循環結構程序之前,需要分析出送代關系,這樣才能設計出相應的迭代程序迭代算法是用計算機解決問題的基本方法之一。在使用迭代算法解決問題時,需要注意:1.確定迭代變量。在可以使用迭代算法解決的問題中,至少存在一個迭代變量。2.建立迭代關系式。這是解決迭代問題的關鍵。3.控制迭代過程。要用循環結構程序讓迭代自動進行。活動2 用循環結構實現自動選代(1)每天的跳繩數迭代關系甲乙兩位同學每天的跳繩數規律比較好找。在順序程序設計中已經有體驗,其選代關系式可如下表示:甲同學每天跳繩數量迭代關系式:ai=ai-1+5 (i>=2)乙同學每天跳繩數量迭代關系式:ai=ai-1(i為偶數,i>=2)和ai=ai-1+10(i為奇數,i>=3)(1).分析數據的迭代關系跳繩總量的迭代關系示意圖每人跳繩總數如圖所示。由此圖很容易發現其計算規律是以前的總數加當天的數量,如,甲同學跳繩總數的迭代關系式為xi=xi-1+ai (i>=2)。(2).分析迭代過程的程序代碼【1】每天的跳繩數迭代過程a=a+5 #甲同學每天都增加5次if i%2=1: #當前天數為奇數時b=b+10 #乙同學的跳繩次數增加10甲同學每天跳繩100下,第2天開始每天增加5下;乙同學每天跳繩100下,每隔一天增加10下。用a表示甲同學每天的跳繩數,b表示乙同學每天的跳繩數。每天的跳繩數迭代過程為:【2】新一天的跳繩累計總數迭代過程用x表示新一天甲同學的總跳繩數,y表示新一天乙同學的總跳繩數,新一天的跳繩累計總數迭代關系為:x=x+ay=y+b可以構建一個固定次數的循環來確定在什么時候結束迭代過程,在此過程中應用迭代公式讓迭代變量自動迭代,計算出結果。3.用循環結構程序實現自動迭代運行完整的迭代程序,體驗迭代的過程,并修改程序計算出n天后甲、乙兩位同學各自的總運動量,比較誰的運動量更大、誰的訓練更加科學。for i in range(2, n+1):a=a+5 #甲同學每天都增加5次if i%2==1: #當前天數為奇數時b=b+10 #乙同學的跳繩次數增加10次# 計算甲乙同學跳繩的累加次數x=x+ay=y+b#i/usr/ bin /env python3a=100 # 甲同學第1天的跳繩次數b=100 # 乙同學第1天的跳繩次數#甲乙同學累計跳繩次數分別用x、y表示X=a # 甲同學第1天累計跳繩次數y=b # 乙同學第1天累計跳繩次數n=30 # 跳繩的總天數for i in range(2, n+1):a=a+5 #甲同學每天都增加5次if i%2==1: #當前天數為奇數時b=b+10 #乙同學的跳繩次數增加10次x=x+a # 計算甲乙同學跳繩的累加次數y=y+b#顯示甲乙同學n大跳繩的總數print(“甲同學,n,“天共跳繩”,x,下)print("乙同學",n,天共跳繩",下)跳繩總量的計算程序——迭代算法(循環結構)#從第二天開始選代計算for i in range(2, n+1):a=a+5 #甲同學每天都增加5次if i%2==1: #當前天數為奇數時b=b+10 #乙同學的跳繩次數增加10次x=x+a # 計算甲乙同學跳繩的累加次數y=y+b課堂小結:迭代迭代關系迭代算法語法順序結構循環結構算法效率?課堂小結1、什么是迭代算法?迭代算法的3要素的構成2、迭代算法和循環結構的關系?謝謝觀看! 展開更多...... 收起↑ 資源預覽 縮略圖、資源來源于二一教育資源庫