版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、四.算法案例1.多項(xiàng)式求值的秦九韶方法如果給定一個多項(xiàng)式, (3. 4.1)其中 現(xiàn)在的問題是,給定一個x的值,要求多項(xiàng)式函數(shù) 的值。對于這個問題,一種看起來很“自然”的方法是直接逐項(xiàng)求和。如果用 表示x的k次冪, 表示式(3. 4.1)右端前k +l項(xiàng)的部分和,即1由于x的k次冪實(shí)際上等于其次冪再乘上x,而前k+1項(xiàng)的部分和等于前k項(xiàng)的部分和再加上第k +l項(xiàng),因此,逐項(xiàng)求和的方法可以歸結(jié)為如下的遞推關(guān)系:(3.4.2)作為遞推公式(3.4.2)的初值為:(3.4.3)2這樣,就可以利用初值(3.4.3),對于k=1,2,直到n,反復(fù)利用公式(3.4.2)進(jìn)行計算,最后就可以得到。其算法描述
2、如下:(1)逐項(xiàng)法多項(xiàng)式求值。 輸入:存放 的系數(shù)數(shù)組A(0:n);自變量x值。其中輸出: 值P3PROCEDURE CPOLY(A,n,x,P)FOR i=2 TO n DOOUTPUT PRETURN4在這個算法中,為了計算一個x點(diǎn)處的函數(shù),共需要作2n-1次乘法和n次加法。還能不能減少乘法的次數(shù)呢?我們可以將式(3. 4. 1)的右端按降冪次序重新排列,并將它表述成如下嵌套形式這樣,就可以利用式(3.4.4)的特殊結(jié)構(gòu),從里往外一層一層地進(jìn)行計算,即按如下遞推關(guān)系進(jìn)行計算:最后可得結(jié)果(3.4.4)(3.4.5)5這種多項(xiàng)式求值的方法是由我國宋代的一位數(shù)學(xué)家秦九韶最先提出的,我們稱之為秦
3、九韶方法,在有的書上也叫霍納(Horner)方法。其算法描述如下:算法3.2多項(xiàng)式求值的秦九韶方法 輸入:存放 的系數(shù)數(shù)組A(0:n); 自變量x值。其中 。 輸出: 值P。6PROCEDURE CHORNER(A,n,x,P)FOR i=n-1 TO 0 BY -1 DO OUTPUT PRETURN7由秦九韶算法可以看出,多項(xiàng)式函數(shù)的求值只要用一個很簡單的循環(huán)就能完成,并且在這個循環(huán)中只需要作n次乘法和n次加法就夠了。它在實(shí)際使用中是一個很有效的方法。8例. 中國剩余定理(孫子定理)若k2,且m1,m2,mk是兩兩互素的k個正整數(shù),令M= m1m2mk=m1M1=m2M2=mkMk。 則同
4、余式組:x1=b1(modm1),x2=b2(modm2),xk=bk(modmk) 其正整數(shù)解是:Xb1M1M1+b2M2M2+bkMkMk(modM) 其中Mi是滿足同余式: MiMi1(mod mi) (i = 1,2k) 用孫子定理解同余式組: xi=bi(modmi) ( i = 1,2k )的算法步驟如下:92.對半法查找(二分法)算法對這種算法的實(shí)質(zhì)是在一個有限且有序的對象中,通過每次縮減一半查找范圍而達(dá)到迅速確定目的一個有效算法。因此有著很廣泛的應(yīng)用。例如,在數(shù)學(xué)中有很多方程是寫不出根的解析表達(dá)式的,但是根的存在范圍比較容易確定,那么如何才能找到它的根的一個足夠準(zhǔn)確的近似值呢?
5、這時對半查找算法就可以大顯身手了。10由初等函數(shù)f(x)=0構(gòu)成的方程,如果有f(a)f(b)0,則可以肯定方程f(x)=0在(a , b)至少有一個實(shí)數(shù)根。 選擇(a , b)的中點(diǎn)c,若f(c)=0,則根就是x=c。若f(c)0,則用c值取代相應(yīng)的a或b(取代原則是:保證有f(a)f(b) a b c 10,abc=30723,且a b+c,試確定a、b、c的值。分析問題解決這個問題應(yīng)當(dāng)從abc=30723入手。把30723三個整數(shù)相乘的積,只能有有限種情況,我們可以把這些情況一一羅列出來,然后分析哪一種情況是符合條件的。從而找到答案。(在列舉所有情況時,注意三個因子都大于10,這可以減少
6、列舉的工作量)。24把30723分解為3個大于10的因子的乘積只有5種情況1119147(三個因子的和是177)1121133(三個因子的和是165)194957 (三個因子的和是101)114957 (三個因子的和是117)192177 (三個因子的和是117)在這5種情況中考察,符合ab+c而且最大的數(shù)小于100的,只有最后一種情況,即a=77,b=21,c=19。25計算算法設(shè)計窮舉算法的關(guān)鍵是如何列舉所有可能的情況,絕對不能遺漏,最好不要重復(fù)。在列舉時注意變量的范圍,可以減少工作量。我們可以從最小的變量c入手,讓它從10開始變化。但變化的范圍到哪里為止呢?粗略估算一下,三個數(shù)相乘是30
7、723,最小的c不超過它的立方根。我們可以用平方根做近似替代,不必作太多推算。當(dāng)c值產(chǎn)生之后,就可以處理變量b。因?yàn)樗恍∮赾,讓它從c開始,也讓它變化到30723的平方根。有了c和b的值之后,就要判斷他們是否都是30723的因子。如果是,計算出第三個因子a,然后進(jìn)行判斷:a是否大于b+c并且a100。滿足條件就是解答了。26例題 (錢幣問題)在日程生活中常常需要用一些較小面額的錢幣去組合出一定的幣值?,F(xiàn)有面值為1元、2元和5元的鈔票(假設(shè)每種鈔票的數(shù)量都足夠多),從這些鈔票中取出30張使其總面值為100元,問有多少種取法?每種取法的各種面值的鈔票各為多少張?27分析問題顯然列出一條算式來解決
8、錢幣問題是有困難的。既然解析法很難用上,我們嘗試通過列舉所有可能的情況(窮舉),從中判斷出合符條件的解答。 28當(dāng)鈔票數(shù)量比較多,總幣值比較大時,人工列舉所有鈔票組合(窮舉)就很麻煩,這時需要使用計算機(jī)來幫我們窮舉。但使用計算機(jī)來窮舉,必須清楚地說出窮舉的每一個步驟,并通過程序設(shè)計語言轉(zhuǎn)化為計算機(jī)能后執(zhí)行的過程,才能解決問題。 錢幣問題有3種面額的鈔票,鈔票的總張數(shù)是30張,又應(yīng)當(dāng)如何窮舉呢?經(jīng)分析可以知道:當(dāng)有兩種面額的鈔票數(shù)目確定了之后,可以從總張數(shù)為30確定第三種鈔票的張數(shù),然后由總面額是否100元而判斷這個組合是否合乎要求。此外,先確定面額大的鈔票可以使窮舉的次數(shù)少些。29設(shè)計算法 用
9、ONE、TWO、FIVE分別記錄1元、2元、5元鈔票的張數(shù)。變量ANSWER記錄符合條件的解的數(shù)目。窮舉的過程如下:讓ANSWER=0,F(xiàn)IVE=0;TWO=0讓ONE=30 TWO FIVE;檢查5FIVE2TWOONE 是否等于100,若是, 則得到一組解,這時讓ANSWER增加1。并且輸出解答如果TWO30,那么讓TWO增加1,轉(zhuǎn)步驟;如果FIVE20,那么讓FIVE增加1,轉(zhuǎn)步驟結(jié)束可把這些步驟用框圖表示如圖4-7:Click to display30漢諾(Hanoi)塔問題是一個著名的應(yīng)用遞歸算法解決的問題。 問題4-17: 傳說在古代印度的貝拿勒斯神廟里安放了一塊黃銅板,板上插了三
10、根寶石柱,在其中一根寶石柱自上而下由小到大地疊放著64個大小不等的金盤。一名僧人把這些金盤從一根寶石柱移到另外一根上。僧人在移動金盤時遵守下面3條規(guī)則:一次只能移動一個金盤。每個金盤只能由一根寶石柱移到另外一根寶石柱。任何時候都不能把大的金盤放在小的金盤上。31神化說,如果僧人把64個金盤完全地從一根寶石柱移到了另外一根上,世界的末日就要到了。當(dāng)然,神化只能當(dāng)故事聽,世界不可以因?yàn)閭€別人的活動而導(dǎo)致末日。不過,如果能夠計算出僧人按規(guī)則搬完64個金盤,地球能否繼續(xù)存在也的確是個問題!因?yàn)榧词股说膭幼魇置艚?,每秒都能移動一個金盤,那也得要幾億年!32分析問題 要模擬金盤的移動過程是比較困難的,但如果用遞歸的思想來進(jìn)行(壓縮規(guī)模,把問題解決在最簡單的情況),則問題可以解決。 我們把3根寶石柱分別命名為A、B、C。最初有N個金盤放在A,需要把它們?nèi)堪匆?guī)則移動到B。 當(dāng)N=1時,直接把金盤從A搬到B就可以了,1次成功。 當(dāng)N2,那么需要利用C柱來過渡。按照遞歸的思想,我們假設(shè)已經(jīng)找到一種把N1個金盤從一根柱搬到另外一根柱的方法,然后看看如何通過它來實(shí)現(xiàn)搬動N個金盤。我們只要把N1個金盤從A搬到C,然后把最大的金盤從A搬到B,最后把C上的N1個金盤搬到B就可以了。靠遞歸的思想,我們輕而易
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年暑期工勞動合同標(biāo)準(zhǔn)文本集3篇
- 番禺2025版租賃市場房源代理服務(wù)合同
- 2024結(jié)款協(xié)議合同范本
- 二零二四年國際貨物銷售合同:FOB條款與運(yùn)輸2篇
- 二零二五版高校畢業(yè)生就業(yè)指導(dǎo)與職業(yè)規(guī)劃服務(wù)合同6篇
- 二零二五版電影劇本改編與制作投資合同范本3篇
- 2024物聯(lián)網(wǎng)應(yīng)用項(xiàng)目建設(shè)的合同標(biāo)的
- 年度健腹椅競爭策略分析報告
- 年度全自動板框污泥脫水機(jī)產(chǎn)業(yè)分析報告
- 2025年度教育領(lǐng)域臨時工招聘及教學(xué)質(zhì)量合同4篇
- 第7課《中華民族一家親》(第一課時)(說課稿)2024-2025學(xué)年統(tǒng)編版道德與法治五年級上冊
- 2024年醫(yī)銷售藥銷售工作總結(jié)
- 急診科十大護(hù)理課件
- 山東省濟(jì)寧市2023-2024學(xué)年高一上學(xué)期1月期末物理試題(解析版)
- GB/T 44888-2024政務(wù)服務(wù)大廳智能化建設(shè)指南
- 2025年上半年河南鄭州滎陽市招聘第二批政務(wù)輔助人員211人筆試重點(diǎn)基礎(chǔ)提升(共500題)附帶答案詳解
- 山東省濟(jì)南市歷城區(qū)2024-2025學(xué)年七年級上學(xué)期期末數(shù)學(xué)模擬試題(無答案)
- 國家重點(diǎn)風(fēng)景名勝區(qū)登山健身步道建設(shè)項(xiàng)目可行性研究報告
- 投資計劃書模板計劃方案
- 《接觸網(wǎng)施工》課件 3.4.2 隧道內(nèi)腕臂安裝
- 2024-2025學(xué)年九年級語文上學(xué)期第三次月考模擬卷(統(tǒng)編版)
評論
0/150
提交評論