算法案例
一、知識導(dǎo)學(xué)
1.算法設(shè)計思想: (1)“韓信點兵—孫子問題”對正整數(shù)m從2開始逐一檢驗條件,若三個條件中有任何一個不滿足,則m遞增1,一直到m同時滿足三個條件為止(循環(huán)過程用Goto語句實現(xiàn)) (2)用輾轉(zhuǎn)相除法找出 2.更相減損術(shù)的步驟:(1)任意給出兩個正數(shù),判斷它們是否都是偶數(shù).若是,用2約簡;若不是,執(zhí)行第二步.(2)以較大的數(shù)減去較小的數(shù),接著把較小的數(shù)與所得的差比較,并以大數(shù)減小數(shù).繼續(xù)這個操作,直到所得的數(shù)相等為止,則這個數(shù)(等數(shù))就是所求的最大公約數(shù). (3)二分法求方程 S1
取[ S2
若 若 若 S3 若
二、疑難知識導(dǎo)析
1. 2. 3.輾轉(zhuǎn)相除法與更相減損術(shù)求最大公約數(shù)的聯(lián)系與區(qū)別: (1)都是求最大公約數(shù)的方法,計算上輾轉(zhuǎn)相除法以除法為主,更相減損術(shù)以減法為主,計算次數(shù)上輾轉(zhuǎn)相除法計算次數(shù)相對較少,特別當(dāng)兩個數(shù)字大小區(qū)別較大時計算次數(shù)的區(qū)別較明顯. (2)從結(jié)果體現(xiàn)形式來看,輾轉(zhuǎn)相除法體現(xiàn)結(jié)果是以相除余數(shù)為0則得到,而更相減損術(shù)則以減數(shù)與差相等而得到. 4.用二分法求方程近似解,必須先判斷方程在給定區(qū)間[
三、經(jīng)典例題導(dǎo)講
[例1] A.16,-1,4,3 B.15,0,4,3 C.15,-1,3,4 D.15,-1,4,3 錯解:根據(jù) 錯因:對 正解:不超過-0.05的整數(shù)是-1,所以答案為D. [例2] 所謂同構(gòu)數(shù)是指此數(shù)的平方數(shù)的最后幾位與該數(shù)相等.請設(shè)計一算法判斷一個大于0且小于1000的整數(shù)是否為同構(gòu)數(shù). 錯解: 算法思想:求出輸入數(shù)的平方,考慮其個位或最后兩位或最后三位與輸入數(shù)是否相等,若相等,則為同構(gòu)數(shù). Read x If Print x End if End 錯因:在表示個位或最后兩位或最后三位出現(xiàn)錯誤,“/”僅表示除,y/10,y/100,y/1000都僅僅表示商. 正解:可用 Read x If Print x End if End [例3]《孫子算經(jīng)》中的“物不知數(shù)”問題:“今有物不知其數(shù),三三數(shù)之剩二,五五數(shù)之剩三,七七數(shù)之剩二,問物幾何?”可以用下面的算法解決:先在紙上寫上2,每次加3,加成5除余3的時候停下來,再在這個數(shù)上每次加15,到得出7除2的時候,就是答數(shù). 試用流程圖和偽代碼表示這一算法. 解:流程圖為:
偽代碼為: 10
20
30 If
40 If
Print Goto 80 50
End if 60
70 Goto 40 80 End 點評:這是孫子思想的體現(xiàn),主要是依次滿足三個整除條件. [例4]分別用輾轉(zhuǎn)相除法、更相減損法求192與81的最大公約數(shù). 解:輾轉(zhuǎn)相除法: S1 S2 S3 S4 S5 故3是192 與81 的最大公約數(shù). 更相減損法: S1 S2 S3 S4 S5 S6 S7 S8 S9 故3 是192與81的最大公約數(shù). 點評:輾轉(zhuǎn)相除法以除法為主,更相減損術(shù)以減法為主,計算次數(shù)上輾轉(zhuǎn)相除法計算次數(shù)相對較少.輾轉(zhuǎn)相除法是當(dāng)大數(shù)被小數(shù)整除時停止除法運(yùn)算,此時的小數(shù)就是兩者的最大公約數(shù),更相減損術(shù)是當(dāng)大數(shù)減去小數(shù)的差等于小數(shù)時減法停止,較小的數(shù)就是最大公約數(shù). [例5]為了設(shè)計用區(qū)間二分法求方程 圖13-3-2 流程圖為 圖13-3-3
偽代碼為 10 Read 20 30 40 50 If 60 If 70 100 End if
80 Else 90 100 End if 110 If 120 Print 130 End 點評:二分法的基本思想在必修一中已滲透,這里運(yùn)用算法將二分法求方程近似解的步驟更清晰的表述出來. [例6] 用秦九韶算法計算多項式 解: 根據(jù)秦九韶算法,此多項式可變形為 按照從內(nèi)到外的順序,依次計算一次多項式當(dāng) 故當(dāng) 點評:秦九韶算法的關(guān)鍵是n次多項式的變形. 把一個
四、典型習(xí)題導(dǎo)練
1.以下短文摘自古代《孫子算經(jīng)》一書,其引申出的“大衍求一術(shù)”稱為“中國剩余原理”:“今有物不知其數(shù),三三數(shù)之剩二,五五數(shù)之剩三,七七數(shù)之剩二,問物幾何?”答曰( ). A.二十一 B.二十二 C.二十三 D.二十四 2.用輾轉(zhuǎn)相除法求52與39的最大公約數(shù)的循環(huán)次數(shù)為( ). A.1次 B.2次 C.3次 D.5次 3.下面程序功能是統(tǒng)計隨機(jī)產(chǎn)生的十個兩位正整數(shù)中偶數(shù)和奇數(shù)的個數(shù),并求出偶數(shù)與奇數(shù)各自的總和. For I from 1 to 10 Print x; If Then Else
End If End for Print “奇數(shù)個數(shù)=”; 4.若一個數(shù)的各因子之和正好等于該數(shù)本身,則該數(shù)成為完數(shù).請補(bǔ)充完整下列找出1~100之間的所有完數(shù)的偽代碼. For For b from 2 to If mod(a,b)=0 Then
End if End For If Then Print a End if End For End 5.設(shè)計求被9除余4,被11除余3的最小正整數(shù)的算法,畫出流程圖,寫出偽代碼. 6.利用輾轉(zhuǎn)相除法或更相減損術(shù)求324,243,135的最大公約數(shù). |
|