算法的概念課件_第1頁
算法的概念課件_第2頁
算法的概念課件_第3頁
算法的概念課件_第4頁
算法的概念課件_第5頁
已閱讀5頁,還剩43頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

20世紀最偉大的科學技術發明是計算機.沒有軟件的支持,計算機只是一堆廢鐵而已.軟件的核心就是算法!20世紀最偉大的科學技術發明是計算機.沒有軟件的支算法的含義算法的含義【1】一個農夫帶著一條狼、一頭山羊和一筐蔬菜要過河,但只有一條小船.乘船時,農夫只能帶一樣東西.當農夫在場的時候,這三樣東西相安無事.一旦農夫不在,狼會吃羊,羊會吃菜.請設計一個算法,使農夫能安全地將這三樣東西帶過河.第一步:農夫帶羊過河;第二步:農夫獨自回來;第三步:農夫帶狼過河;第四步:農夫帶羊回來;第五步:農夫帶蔬菜過河;第六步:農夫獨自回來;第七步:農夫帶羊過河.創設情境【1】一個農夫帶著一條狼、一頭山羊和一筐蔬菜要過河,但只有一一般地,對于一類問題的機械式地、統一地、按部就班地求解過程稱為算法(algorithm)它是解決某一問題的程序或步驟.按照這樣的理解,我們可以設計出很多具體數學問題的算法.下面看幾個例子:所謂“算法”就是解題方法的精確描述.從更廣義的角度來看,并不是只有“計算”的問題才有算法,日常生活中處處都有.如歌譜是一首歌曲的算法;菜譜是做菜的算法;珠算口訣是使用算盤的算法;空調說明書是空調使用的算法等.一般地,對于一類問題的機械式地、統一地、按部就班地求解:第一步:①+②×2,得第二步:解③,得機械的統一的方法5x=1.③第三步:②-①×2,得5y=3.④第四步:解④,得第五步:得到方程組的解為新知建構例1.寫出解二元一次方程組的一個算法.解:第一步:①+②×2,得第二步:解③,得機械的統一的算法1算法2問:ax

+b

=

0

?算法1算法2問:ax+b=0?練2.寫出求1+2+3+4+5的一個算法.算法1:S1:計算1+2得到3;S2:將第一步中的運算結果3與3相加得到6;S3:將第二步中的運算結果6與4相加得到10;S4:將第三步中的運算結果10與5相加得到15.算法2:S1:取n=5.S2:計算S3:輸出運算結果.同一問題的解決算法一般是不唯一的練2.寫出求1+2+3+4+5的一個算法.算法1:S1:計算第一步:計算1×2,得2;第二步:將第一步中的運算結果2與3相乘得6;第三步:將第二步中的運算結果6與4相乘得24;第四步:將第三步中的運算結果24與5相乘得120;第五步:將第四步中的運算結果120與6相乘得720.練3.求1×2×3×4×5×6的值,寫出其算法.第一步:計算1×2,得2;第二步:將第一步中的運算結果2與3在數學中,算法通常是指按照一定規則解決某一類問題的明確的有限的步驟.現在,算法通常可以編成計算機程序,讓計算機執行并解決問題.1.算法的定義新知建構?算法:廣義上講,做任何事情都有一定的步驟,為解決一個問題而采取的方法和步驟就是算法.總結?算法過程:要能一步一步執行,每一步執行的操作,必須確切,不能含混不清楚,而且經過有限步后能得出結果.在數學中,算法通常是指按照一定規則解決某一類小結通過練習說明算法有三個主要特點:(3)確定性算法的每一個步驟和次序應當是確定的(2)有限性一個算法在執行有限個步驟后必須結束;(1)可行性一個算法必須一步步可執行小結通過練習說明算法有三個主要特點:(3)確定性算法的想一想【1】有人對歌德巴赫猜想“任何大于4的偶數都能寫成兩個奇質數之和”設計了如下操作步驟:第一步:檢驗6=3+3第二步:檢驗8=3+5利用計算機無窮地進行下去!利用這種程序能夠證明猜想的正確性嗎?第三步:檢驗10=5+5想一想【1】有人對歌德巴赫猜想“任何大于4的偶數都能寫成兩個【2】問要把大象裝冰箱,分幾步?答:分三步:第一步:打開冰箱門.第二步:把大象裝冰箱.第三步:關上冰箱門.想一想對算法你有新的認識了嗎?【2】問要把大象裝冰箱,分幾步?答:分三步:第一步:打開冰箱例題講解第一步:用2除7,得到余數1.因為余數不為0,所以2不能整除7.第二步:用3除7,得到余數1.因為余數不為0,所以3不能整除7.第三步:用4除7,得到余數3.因為余數不為0,所以4不能整除7.第四步:用5除7,得到余數2.因為余數不為0,所以5不能整除7.第五步:用6除7,得到余數1.因為余數不為0,所以6不能整除7.例2.(1)設計一個算法,判斷7是否為質數.例題講解第一步:用2除7,得到余數1.因為余數不為0,例2.例2.(2)設計一個算法,判斷35是否為質數.第一步:用2除35,得到余數1.因為余數不為0,所以2不能整除35.第二步:用3除35,得到余數2.因為余數不為0,所以3不能整除35.第三步:用4除35,得到余數3.因為余數不為0,所以4不能整除35.第四步:用5除35,得到余數0.因為余數為0,所以5能整除35.因此,35不是質數.例2.(2)設計一個算法,判斷35是否為質數.第一步:用2除例2.任意給定一個大于2的整數n,試設計一個程序或步驟對n是否為質數做出判定.第二步:令i=2.第一步:給定一個大于2的整數n.

第三步:用i除n,得到余數r.解析:n是否為質數?2~(n-1)這是判斷一個大于1的整數的最基本算法.例題講解第四步:判斷“r=0”是否成立.若是,則n不是質數,結束算法;否則,將i的值增加1,仍i用表示.第五步:判斷“i>(n-1)”是否成立.若是,則n是質數,結束算法;否則返回第三步.例2.任意給定一個大于2的整數n,試設計一個程序或步驟對n是第五步:判斷[a,b]的長度是否小于d或f(m)是否等于0.若是,則m是方程的近似解;否則,返回第三步.例3.用二分法設計一個求方程x2-2=0(x>0)

的近似根的算法.第一步:令f(x)=x2-2,給定精確度d.第二步:確定區間[a,b],滿足f(a)·f(b)<0.例題講解第三步:取區間中點m=第四步:若f(a)·f(m)<0,則含零點的區間為[a,m];否則,含零點的區間為[m,b],將新得到的含零點的區間仍記為[a,b].第五步:判斷[a,b]的長度是否小于d或f(m)是否等于ab|a-b|12111.50.51.251.50.251.3751.50.1251.3751.43750.06251.406251.43750.031251.406251.4218750.0156251.41406251.4218750.00781251.41406251.417968750.00390625當d=0.005時,開區間(1.4140625,1.41796875)中的實數都是原方程的近似解.ab|a-b|12111.50.51.251.50.251.1.任意給定一個正實數,設計一個算法求以這個數為半徑的圓的面積.(P5練習2)S1:輸入任意一個正實數r.S2:計算圓的面積:S=πr2.S3:輸出圓的面積S.鞏固練習開始輸出S結束S=πr2輸入r1.任意給定一個正實數,設計一個算法求以這個數為半徑的圓的面2.任意給定一個大于1的正整數n,設計一個算法求出n的所有因數.(P5練習2)第一步:給定一個大于1的正整數n.第三步:在n的因數中加入1和n.第四步:得到n的所有因數.鞏固練習第二步:依次以2~(n-1)的整數d為除數去除n,檢查余數是否為0.若是,則d是n的因數;若不是,則d不是n的因數.2.任意給定一個大于1的正整數n,設計一個算法求出n的所有例4.寫出一個能找出在a,b,c,d四個數中最大的數的算法.第一步:輸入a,b,c,d四個數;第二步:max=a;第三步:如果b>max,則max=b;第四步:如果c>max,則max=c;第五步:如果d>max,則max=d;第六步:輸出max.點評:算法要求“按部就班”地做,每做一步都有唯一的結果,且有限步之后總能得到結果.例4.寫出一個能找出在a,b,c,d四個數中最大的數的算法.例5.寫出一個求有限整數列中的最大值的算法.S1:先假定序列中的第一個整數為“最大值”.S2:將序列中的下一個整數值與“最大值”比較,如果它大于此“最大值”,這時你就假定“最大值”是這個整數.S3:如果序列中還有其他整數.重復S2.S4:在序列中一直到沒有可比的數為止,這時假定的“最大值”就是這個序列中的最大值.例5.寫出一個求有限整數列中的最大值的算法.S1:先假定序列1.知識結構算法的概念算法的步驟算法的特點算法2.算法的特點:思路簡單清晰,敘述復雜,步驟繁瑣,計算量大,完全依靠人力難以完成.而這些恰恰就是計算機的特長,它能不厭其煩地完成枯燥的、重復的繁瑣的工作.正因為這些,現代算法的作用之一就是使計算機代替人完成某些工作,這也是我們學習算法的重要原因之一.課堂小結1.知識結構算法的概念算法的步驟算法的特點算法2.算法的特小結通過例題說明算法有兩個主要特點:(1)有限性一個算法在執行有限個步驟后必須結束;(2)確定性算法的每一個步驟和次序應當是確定的小結通過例題說明算法有兩個主要特點:(1)有限性一個算學案:刪第1頁例1,第2頁3,拓展提高2完成:學案P.1-2

——華羅庚

天才在于積累。聰明在于勤奮,布置作業學案:刪第1頁例1,第2頁3,完成:學案P20世紀最偉大的科學技術發明是計算機.沒有軟件的支持,計算機只是一堆廢鐵而已.軟件的核心就是算法!20世紀最偉大的科學技術發明是計算機.沒有軟件的支算法的含義算法的含義【1】一個農夫帶著一條狼、一頭山羊和一筐蔬菜要過河,但只有一條小船.乘船時,農夫只能帶一樣東西.當農夫在場的時候,這三樣東西相安無事.一旦農夫不在,狼會吃羊,羊會吃菜.請設計一個算法,使農夫能安全地將這三樣東西帶過河.第一步:農夫帶羊過河;第二步:農夫獨自回來;第三步:農夫帶狼過河;第四步:農夫帶羊回來;第五步:農夫帶蔬菜過河;第六步:農夫獨自回來;第七步:農夫帶羊過河.創設情境【1】一個農夫帶著一條狼、一頭山羊和一筐蔬菜要過河,但只有一一般地,對于一類問題的機械式地、統一地、按部就班地求解過程稱為算法(algorithm)它是解決某一問題的程序或步驟.按照這樣的理解,我們可以設計出很多具體數學問題的算法.下面看幾個例子:所謂“算法”就是解題方法的精確描述.從更廣義的角度來看,并不是只有“計算”的問題才有算法,日常生活中處處都有.如歌譜是一首歌曲的算法;菜譜是做菜的算法;珠算口訣是使用算盤的算法;空調說明書是空調使用的算法等.一般地,對于一類問題的機械式地、統一地、按部就班地求解:第一步:①+②×2,得第二步:解③,得機械的統一的方法5x=1.③第三步:②-①×2,得5y=3.④第四步:解④,得第五步:得到方程組的解為新知建構例1.寫出解二元一次方程組的一個算法.解:第一步:①+②×2,得第二步:解③,得機械的統一的算法1算法2問:ax

+b

=

0

?算法1算法2問:ax+b=0?練2.寫出求1+2+3+4+5的一個算法.算法1:S1:計算1+2得到3;S2:將第一步中的運算結果3與3相加得到6;S3:將第二步中的運算結果6與4相加得到10;S4:將第三步中的運算結果10與5相加得到15.算法2:S1:取n=5.S2:計算S3:輸出運算結果.同一問題的解決算法一般是不唯一的練2.寫出求1+2+3+4+5的一個算法.算法1:S1:計算第一步:計算1×2,得2;第二步:將第一步中的運算結果2與3相乘得6;第三步:將第二步中的運算結果6與4相乘得24;第四步:將第三步中的運算結果24與5相乘得120;第五步:將第四步中的運算結果120與6相乘得720.練3.求1×2×3×4×5×6的值,寫出其算法.第一步:計算1×2,得2;第二步:將第一步中的運算結果2與3在數學中,算法通常是指按照一定規則解決某一類問題的明確的有限的步驟.現在,算法通常可以編成計算機程序,讓計算機執行并解決問題.1.算法的定義新知建構?算法:廣義上講,做任何事情都有一定的步驟,為解決一個問題而采取的方法和步驟就是算法.總結?算法過程:要能一步一步執行,每一步執行的操作,必須確切,不能含混不清楚,而且經過有限步后能得出結果.在數學中,算法通常是指按照一定規則解決某一類小結通過練習說明算法有三個主要特點:(3)確定性算法的每一個步驟和次序應當是確定的(2)有限性一個算法在執行有限個步驟后必須結束;(1)可行性一個算法必須一步步可執行小結通過練習說明算法有三個主要特點:(3)確定性算法的想一想【1】有人對歌德巴赫猜想“任何大于4的偶數都能寫成兩個奇質數之和”設計了如下操作步驟:第一步:檢驗6=3+3第二步:檢驗8=3+5利用計算機無窮地進行下去!利用這種程序能夠證明猜想的正確性嗎?第三步:檢驗10=5+5想一想【1】有人對歌德巴赫猜想“任何大于4的偶數都能寫成兩個【2】問要把大象裝冰箱,分幾步?答:分三步:第一步:打開冰箱門.第二步:把大象裝冰箱.第三步:關上冰箱門.想一想對算法你有新的認識了嗎?【2】問要把大象裝冰箱,分幾步?答:分三步:第一步:打開冰箱例題講解第一步:用2除7,得到余數1.因為余數不為0,所以2不能整除7.第二步:用3除7,得到余數1.因為余數不為0,所以3不能整除7.第三步:用4除7,得到余數3.因為余數不為0,所以4不能整除7.第四步:用5除7,得到余數2.因為余數不為0,所以5不能整除7.第五步:用6除7,得到余數1.因為余數不為0,所以6不能整除7.例2.(1)設計一個算法,判斷7是否為質數.例題講解第一步:用2除7,得到余數1.因為余數不為0,例2.例2.(2)設計一個算法,判斷35是否為質數.第一步:用2除35,得到余數1.因為余數不為0,所以2不能整除35.第二步:用3除35,得到余數2.因為余數不為0,所以3不能整除35.第三步:用4除35,得到余數3.因為余數不為0,所以4不能整除35.第四步:用5除35,得到余數0.因為余數為0,所以5能整除35.因此,35不是質數.例2.(2)設計一個算法,判斷35是否為質數.第一步:用2除例2.任意給定一個大于2的整數n,試設計一個程序或步驟對n是否為質數做出判定.第二步:令i=2.第一步:給定一個大于2的整數n.

第三步:用i除n,得到余數r.解析:n是否為質數?2~(n-1)這是判斷一個大于1的整數的最基本算法.例題講解第四步:判斷“r=0”是否成立.若是,則n不是質數,結束算法;否則,將i的值增加1,仍i用表示.第五步:判斷“i>(n-1)”是否成立.若是,則n是質數,結束算法;否則返回第三步.例2.任意給定一個大于2的整數n,試設計一個程序或步驟對n是第五步:判斷[a,b]的長度是否小于d或f(m)是否等于0.若是,則m是方程的近似解;否則,返回第三步.例3.用二分法設計一個求方程x2-2=0(x>0)

的近似根的算法.第一步:令f(x)=x2-2,給定精確度d.第二步:確定區間[a,b],滿足f(a)·f(b)<0.例題講解第三步:取區間中點m=第四步:若f(a)·f(m)<0,則含零點的區間為[a,m];否則,含零點的區間為[m,b],將新得到的含零點的區間仍記為[a,b].第五步:判斷[a,b]的長度是否小于d或f(m)是否等于ab|a-b|12111.50.51.251.50.251.3751.50.1251.3751.43750.06251.406251.43750.031251.406251.4218750.0156251.41406251.4218750.00781251.41406251.417968750.00390625當d=0.005時,開區間(1.4140625,1.41796875)中的實數都是原方程的近似解.ab|a-b|12111.50.51.251.50.251.1.任意給定一個正實數,設計一個算法求以這個數為半徑的圓的面積.(P5練習2)S1:輸入任意一個正實數r.S2:計算圓的面積:S=πr2.S3:輸出圓的面積S.鞏固練習開始輸出S結束S=πr2輸入r1.任意給定一個正實數,設計一個算法求以這個數為半徑的圓的面2.任意給定一個大于1的正整數n,設計一個算法求出n的所有因數.(P5練習2)第一步:給定一個大于1的正整數n.第三步:在n的因數中加入1和n.第四步:得到n的所有因數.鞏固練習第二步:依次以2~(n-1)的整數d為除數去除n,檢查余數是否為0.若是,則d是n的因數;若不是,則d不是n的因數.2.任意給定一個大于1的正整數n,設計一個算法求出

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論