




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、初中信息技術Python編程一一算法【來做拍“7”游戲】生活中有很多問題需要把所有可能的答案都列舉出來,從中尋找最優(yōu)答案。譬如借助電子地圖查詢去博物館的公交路線,就是要逐一找出所有可能的線路, 然后根據(jù)條件選擇正確線路。把問題的所有可能解都一一列舉出來,并按照問題要求的條件逐個判斷每 個答案是否是正確的解,保存正確的,丟棄不正確的,做到既不遺漏也不重復, 這就是枚舉算法。用枚舉算法(也稱為窮舉法)求解問題,就是從所有候選答案 中搜索正確的結果,方法簡單但很實用。我們將借助計算機的高速運算能力,采用枚舉算法通過逐一嘗試,最終得出求解結果。通過本節(jié)的學習,你將掌握以下技能: *能夠準確確定枚舉對象
2、、枚舉范圍。*學會應用準確的判定條件,找到所有答案組合。專題一:快速尋找有規(guī)律的數(shù)據(jù)L1做游戲,找規(guī)律同學們有沒有玩過一種叫作拍r的游戲?游戲規(guī)那么是:把從1開始的自然數(shù)中含T 的數(shù)稱作明T ;把不含7且是的倍數(shù)的數(shù)稱作暗7。從1開141421始輪流報數(shù),輪到報明7或空音T的人,17不能出聲,只拍一下手。第一輪拍手的數(shù)字假設一起游戲的有33人,請記錄經過!探究:請根據(jù)第一輪游戲報數(shù)中拍手的數(shù)據(jù),嘗試寫出第二輪、第三輪游戲的數(shù)據(jù)。3輪報數(shù)后拍手的數(shù)據(jù)。1.2用程序尋找結果當數(shù)據(jù)越來越大,就越難發(fā)現(xiàn)明7和暗r 0這時,不妨利用枚舉算 法,借第一輪拍手的數(shù)字助Python程序來快速找出想要的結果。.
3、確定枚舉的對象、范圍和條件。假定報數(shù)到達100時游戲結束,根據(jù)拍7”游戲的游戲規(guī)那么,確定枚舉范圍是1100的自然數(shù),設定一個變量i作為枚舉對象。枚舉1100的程序 基本結構如下。#Python拍7游戲n=100for i in range(l,n+l):| print(i)在程序中,循環(huán)結構通過range ()函數(shù)控制枚舉范圍。接下來,通過增加判定條件以確定明T和暗7 : Tin str(i) or i%7=0o請結合下面算法流程圖,討論如何枚舉明T和暗T oi=li=i+l拍7游戲算法流程圖2,編寫程序判斷明T o把1 100的自然數(shù)中含的數(shù),即明7找出來,需要利用選擇結構if語句添加限定
4、條件。1鏟,明7”判斷程序n=100for i in range(l,n+l):if 7 in str(i):print(i,end=)print(以上為明7數(shù)字”)控制臺7 17 27 37 47 57 67 70 71 72 73 74 75 76 77 78 79 87 97 以上為明 7教字程序運行結束3.增加條件,同時判斷暗7”。不僅要判別出明7”,還要判斷暗7”,即找出被7整除的數(shù)。借助if語句添加條件,就可以同時判斷是否是暗7。鏟,明7”判斷程序n=100for i in range(l1,n+1):if 7 in str(i) or i%7=0:print(i,end=)pri
5、nt (所有拍手數(shù)”)控制臺14 17 21 27 28 35 37 42 47 49 56 57 63 67 70 71 72 73 74 75 76 77 78 79 84 87 91 97 98 所有拍手數(shù) 程序運行結束在程序中:是取余運算,運算結果為兩數(shù)相除所得的余數(shù)。借助邏輯運算符可以判斷多種情況。print默認輸出是換行的,如果要實現(xiàn)不換行需要在變量末尾加 TOC o 1-5 h z ;討論;IIII:假設只需枚舉暗7,僅使用i%7=0并不能準確進行判斷,請討論還需要1;什么條件來進行綜合判斷。;IIIIII上 end=,專題二:尋找水仙花數(shù)如果一個3位數(shù)等于其各位數(shù)字的立方和,那
6、么稱這個數(shù)為水仙花數(shù)。例如:153 = 1人3 + 5人3 + 3人3 ,因此153就是一個水仙花數(shù)。請嘗試補全下面程序代碼中缺少的枚舉范圍和判定條件,借助枚舉算法尋找1000以內的水仙花數(shù)。for i in range(l,10):#枚舉百位for j in rang():#枚舉十位for k in rang():#枚舉個位x=i*100+j*10+k if: #判定條件 print(x)在程序中:可使用*運算符完成幕運算,如2*3=8。請嘗試輸入以上程序,并查看運行結果,體驗枚舉算法的神奇和計算機強 大的計算能力。拓展閱讀枚舉在數(shù)學中的應用枚舉算法起源于原始的計數(shù)方法,即數(shù)數(shù)。當我們面臨的問題存在大量的可能答案(或中間過程)而暫時又無法用邏輯 方法排除這些可能答案中的大局部時,就不得不采用逐一檢驗這些答案的策略, 也就是利用枚舉算法來解題。鞏固與提高1、從所有候選答案中搜索正確結果,來解決問題的算法是()A.排序算法 B.枚舉算法 C.遞歸算法 D.迭代算法2、在程序中,循環(huán)結構通過()函數(shù)控制枚舉范圍。A. print( ) B. range( ) C. str( ) D. input()3、()是取余運算,運算結果為兩數(shù)相除所得的余數(shù)。A. % B. / C. ; D
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論