算法設(shè)計(jì)與分析 課件 第一章 緒論 1.1 例1.1_第1頁
算法設(shè)計(jì)與分析 課件 第一章 緒論 1.1 例1.1_第2頁
算法設(shè)計(jì)與分析 課件 第一章 緒論 1.1 例1.1_第3頁
算法設(shè)計(jì)與分析 課件 第一章 緒論 1.1 例1.1_第4頁
算法設(shè)計(jì)與分析 課件 第一章 緒論 1.1 例1.1_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

計(jì)算機(jī)算法設(shè)計(jì)與分析第1章概述例1.1求兩個正整數(shù)的最大公約數(shù)方法一:利用質(zhì)因數(shù)分解法求解最大公約數(shù),其具體步驟描述如下:(1)輸入兩個正整數(shù)a和b。(2)將a和b分別進(jìn)行質(zhì)因數(shù)分解,得到它們的所有質(zhì)因數(shù)的乘積形式。(3)將a和b中相同的所有質(zhì)因數(shù)乘積計(jì)算出來,得到的結(jié)果即為a和b的最大公約數(shù)。若a或b無質(zhì)因數(shù)(除1和該數(shù)本身外),則最大公約數(shù)為1。例1.1求任意兩個正整數(shù)的最大公約數(shù)以具體計(jì)算為例,假設(shè)需要求解的兩個整數(shù)為42和28,42=2×3×7,28=2×2×7共同的質(zhì)因數(shù)2和7,因此,42和28的最大公約數(shù)為2×7=14利用方法一可以快速求出兩個整數(shù)的最大公約數(shù),但方法一的描述過程不能稱為一個正真意義上的算法,因?yàn)榈?2)步?jīng)]有明確如何將正整數(shù)a和b進(jìn)行質(zhì)因數(shù)分解,且質(zhì)因數(shù)分解是一個NP類問題,目前尚未找到有效的解決方法。第(3)步也沒有明確定義在兩個質(zhì)因數(shù)序列中如何找到相同的質(zhì)因數(shù)元素。因此方法一描述不滿足算法的確定性和可行性。例1.1求任意兩個正整數(shù)的最大公約數(shù)方法二:利用蠻力窮舉法求解最大公約數(shù),具體步驟描述如下:(1)輸入a和b。(2)將a和b中的較小者賦值給r。(3)若a、b除以r的余數(shù)同時等于0,轉(zhuǎn)(5),否則往下執(zhí)行(4)。(4)執(zhí)行r=r-1,轉(zhuǎn)(3)。(5)輸出r,執(zhí)行結(jié)束。主要思想:是從兩個整數(shù)中較小者開始,去逐步尋找能被兩整數(shù)同時整除的數(shù),一旦發(fā)現(xiàn)則終止尋找,并將該數(shù)作為兩整數(shù)的最大公約數(shù)。例1.1求任意兩個正整數(shù)的最大公約數(shù)r=2842%28=14,28%28=0,r=28-1=2742%27=15,28%27=1,r=27-1=2642%26=16,28%26=2,r=26-1=2542%25=17,28%25=3,r=25-1=2442%24=18,28%24=4,r=24-1=2342%23=19,28%23=5,r=23-1=2242%22=20,28%22=6,r=22-1=2142%21=0,28%21=7,r=21-1=2042%20=2,28%20=8,r=20-1=1942%19=4,28%19=9,r=19-1=1842%18=6,28%18=10,r=18-1=1742%17=8,28%17=11,r=17-1=1642%16=10,28%16=12,r=16-1=1542%15=12,28%15=13,r=15-1=1442%14=0,28%14=0輸出r,結(jié)果為14。以具體計(jì)算為例,設(shè)a=42和b=28,則計(jì)算過程為:例1.1求任意兩個正整數(shù)的最大公約數(shù)在a=42,b=28的情況下,窮舉法運(yùn)行了15步才計(jì)算出結(jié)果。方法二窮舉法非常簡單,計(jì)算過程易于理解,但窮舉法的效率非常低。例1.1求任意兩個正整數(shù)的最大公約數(shù)方法三:利用輾轉(zhuǎn)相除法(也稱歐幾里得算法)求解最大公約數(shù),具體步驟描述如下:(1)輸入兩個整數(shù)a和b。(2)若a<b則將a,b的值互換,以保持a是兩個整數(shù)中較大者,b為較小者。(3)將a除以b的余數(shù)賦值給r,若余數(shù)r等于0,則執(zhí)行(5),否則往下執(zhí)行(4)(4)將除數(shù)b賦值給a,將余數(shù)r賦值給b,轉(zhuǎn)(3)重復(fù)執(zhí)行(5)b為所求最大公約數(shù),輸出b,執(zhí)行結(jié)束。例1.1求任意兩個正整數(shù)的最大公約數(shù)以具體計(jì)算為例,設(shè)a=42和b=28,則計(jì)算過程為:r=42%28=14,a=28,b=14r=28%14=0輸出b,結(jié)果為14。在a=42,b=28的情況下,輾轉(zhuǎn)相除法只運(yùn)行了2步就計(jì)算出結(jié)果。例1.1求任意兩個正整數(shù)的最大公約數(shù)算法:輾轉(zhuǎn)相除法;輸入:兩個正整數(shù)a,b;

輸出:最大公約數(shù)Max_common_divisor(a,b)be

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論