快樂課堂學數學-多余老師趣講“算法”-高中數學必修_第1頁
快樂課堂學數學-多余老師趣講“算法”-高中數學必修_第2頁
快樂課堂學數學-多余老師趣講“算法”-高中數學必修_第3頁
快樂課堂學數學-多余老師趣講“算法”-高中數學必修_第4頁
快樂課堂學數學-多余老師趣講“算法”-高中數學必修_第5頁
已閱讀5頁,還剩5頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、快樂課堂學數學-多余老師趣講“算法”本講義非常特別,雖然是專為高一學生寫的,但各位家長和小學生、初中生都值得一看,可以對“算法”對成績的重要作用有更全面的了解,知道“算法”是解決問題、提升成績的正途。任何事情想做好,都沒有捷徑,但是不同的路徑有效率的高低之分。如何選擇適合自己的“算法”去解決自己的問題,請看看本講義。并希望,能對學生做出“人生算法”,有所幫助。 一、“算法”概述算法(Algorithm):是指解題方案的準確而完整的描述,是一系列解決問題的清晰指令,算法代表著用系統的方法描述解決問題的策略機制。也就是說,能夠對一定規范的輸入,在有限時間內獲得所要求的輸出。如果一個算法有缺陷,或不

2、適合于某個問題,執行這個算法將不會解決這個問題。不同的算法可能用不同的時間、空間或效率來完成同樣的任務。一個算法的優劣可以用空間復雜度與時間復雜度來衡量。可以看出,“算法”其實是一種數學思想,是一種“理性”,是一種系統性解決問題的方法。所以,當你用“理性”,系統性解決問題,那你就是“有算法”。當你用“非理性”,“非系統性”地去解決問題,那你就是“沒算法”。我們可以通過“純數學性算法”,去了解“算法”,再真正運用到所有的“需解決問題”。二、“純數學性”算法在純數學范圍內,算法可以理解為有基本運算及規定的運算順序所構成的完整的解題步驟。或者看成按照要求設計好的有限的確切的計算序列,并且這樣的步驟和

3、序列可以解決一類問題。在這里,可以把此類算法,命名為“解決數學問題的算法”。為什么有的同學學數學很困難,也下了苦功,也做了很多題,可是成績仍不理想?為什么有的同學學數學很輕松,成績也令人喜悅?關鍵就在于:你有沒有“算法”。苦學后成績仍不理想的你,做了數不清的題目,可是你收獲的是每一道題目的解題步驟而已。而會學的學生,收獲的是每一類數學問題的“算法”。高中數學必修3 中的“算法”,雖然也是“解決數學問題”,但更多的是解決“計算性”數學問題。而計算的準確性、快速性,是計算機的強項,所以,課本上的“算法”,更的是為“計算機編程”而準備。我們人腦,是一個擁有高度智慧的器官,擁有電腦所永遠不可能擁有的“

4、自主分析與判斷”和“人和人之間的關系處理”。所以,用于人腦的算法,與用于電腦的算法,是不同的,有更多復雜的分析、判斷,和對實際情況所引入更多的“輸入”。比如:讓電腦做計算題,它永遠是按照“運算的級別”、“從左到右”等最基礎的,也是最死板的程序進行。而我們人腦,就會根據“實際情況”,選擇“簡便運算”,以達“簡單、快速、準確”。再比如:讓電腦解方程,它永遠只能提供“近似值”,因為它不懂“變形”。于是,人類自己通過“變形”得出一些方程的求解公式,如“一元二次方程的求根公式”,讓電腦使用。而我們人腦,就會根據“實際情況”,選擇不同的“變形”,使之變成“最簡形式”,即得方程的“準確解”。就是解“一元二次

5、方程”,“求根公式”也是在“變形”無效時,才無奈使用的。三、“人腦”算法通過以上“解決計算性數學問題的算法”的了解,我們可以知道,我們“人腦算法”,要比“電腦算法”,復雜得多,但卻有用得多。所以,不要把自己當成電腦,只想通過最簡單的途徑去解決問題,去提高成績。而是要,通過樹立良好的學習態度,形成良好的學習習慣,提升自己的數學能力,這樣“復雜的人腦算法”,來解決問題,來提高成績。只要根據“自己的現實情況輸入”,按照“正確的人腦算法”,一步一步去實施,最后的“輸出成績、能力、素質”會如何?所以,每一個學生都能學好數學,這不是吹牛。關鍵是:你是否愿意在“正確的人腦算法”前,進行“輸入”?你是否按“正

6、確的人腦算法”實施每一步“程序”?當你,不愿意“輸入”到“人腦算法”,只想進入“電腦算法”;或者“輸入”到了“人腦算法”,卻不執行“程序”;你憑什么得出,你會得到理想的“輸出”?不要等到,“輸出”已經確定,再后悔對“算法”的選擇和實施,時間不會倒流,電腦可以“重新編程、重新執行、重新輸入輸出”,而人生,無法“重新”。請把握好“現在”,只要在“輸出”沒有確定前,還有時間、還有機會,“重新輸入、重新執行”!在小學時,就學習過,“擠時間”的“人腦算法”。在起床時,我們要洗臉、刷牙,要晨讀、要晨練,要吃飯、要穿衣,還要打扮一下,如何在最短的時間,完成如此多的任務?是時間不夠用嗎?不是!是你沒有“關于時

7、間的算法”。雷鋒叔叔說:“有些人說工作忙,沒時間學習,我認為問題不在工作忙,而在于你愿不愿意學習,會不會擠時間。”愿不愿意學習,就是你是否愿意“輸入”?會不會擠時間,就是你有沒有“關于時間的算法”?四、算法的細致學習通過對算法的細致學習,我們來一起找出“關于時間的算法”和“關于提升成績的算法”。A算法的特征一個算法應該具有以下六個重要的特征:1、有窮性(Finiteness)算法的有窮性是指算法必須能在執行有限個步驟之后終止;“人腦算法復雜,但步驟有限”。2、確切性(Definiteness)算法的每一步驟必須有確切的定義;“人腦算法,不能憑感覺,必須有標準。”3、輸入項(Input)一個算法

8、有0個或多個輸入,以刻畫運算對象的初始情況,所謂0個輸入是指算法本身定出了初始條件;“我們的輸入,包括內部條件,如現在的各科成績,現在的學習態度、現在的學習習慣等。”“以及其他外部條件,如家庭的情況,學校的情況,教師的情況等”。4、輸出項(Output)一個算法有一個或多個輸出,以反映對輸入數據加工后的結果。沒有輸出的算法是毫無意義的;“我們現在要輸出的是,會擠時間,理想的成績”。5、可行性(Effectiveness)算法中執行的任何計算步驟都是可以被分解為基本的可執行的操作步,即每個計算步都可以在有限時間內完成(也稱之為有效性);B算法的基本要素第一,數據對象的運算和操作:計算機可以執行的

9、基本操作是以指令的形式描述的。一個計算機系統能執行的所有指令的集合,成為該計算機系統的指令系統。一個計算機的基本運算和操作有如下四類:1,算術運算:加減乘除等運算2,邏輯運算:或、且、非等運算3,關系運算:大于、小于、等于、不等于等運算4,數據傳輸:輸入、輸出、賦值等運算“對于人腦算法,算術運算就是實施,邏輯運算和關系運算就是選擇和判斷”。第二,算法的控制結構:一個算法的功能結構不僅取決于所選用的操作,而且還與各操作之間的執行順序有關。“就是實施的先后順序”。C算法的評價同一問題可用不同算法解決,而一個算法的質量優劣將影響到算法乃至程序的效率。算法分析的目的在于選擇合適算法和改進算法。一個算法

10、的評價主要從時間復雜度和空間復雜度來考慮。1.時間復雜度算法的時間復雜度是指執行算法所需要的時間。“好的算法,要使所需時間盡可能少,對于人腦就是時間效率和學習效率。”2.空間復雜度算法的空間復雜度是指算法需要消耗的內存空間。其計算和表示方法與時間復雜度類似,一般都用復雜度的漸近性來表示。同時間復雜度相比,空間復雜度的分析要簡單得多。“好的算法,要使內存的占用盡可能小,對于人腦就是記憶要盡可能少,要多理解。”3.正確性算法的正確性是評價一個算法優劣的最重要的標準。4.可讀性算法的可讀性是指一個算法可供人們閱讀的容易程度。5.健壯性健壯性是指一個算法對不合理數據輸入的反應能力和處理能力,也成為容錯

11、性。“對于人腦,就是如何很好地處理不利因素,將不利因素轉化為有利因素。”D算法的基本方法1.遞推法遞推算法是一種用若干步可重復的簡運算(規律)來描述復雜問題的方法.遞推是序列計算機中的一種常用算法。它是按照一定的規律來計算序列中的每個項,通常是通過計算機前面的一些項來得出序列中的指定項的值。其思想是把一個復雜的龐大的計算過程轉化為簡單過程的多次重復,該算法利用了計算機速度快和不知疲倦的機器特點。“時間不會倒流,但每天的24小時的順序,是重復出現的,也就是說,人生實際實際是每天的重復,與電腦不同的是,人腦不是簡單的重復,是上升式的重復。”可以用“遞推法”解決在開學期間或寒暑假期間,每天的時間安排

12、、學習安排。2.遞歸法程序調用自身的編程技巧稱為遞歸( recursion)。一個過程或函數在其定義或說明中有直接或間接調用自身的一種方法,它通常把一個大型復雜的問題層層轉化為一個與原問題相似的規模較小的問題來求解,遞歸策略只需少量的程序就可描述出解題過程所需要的多次重復計算,大大地減少了程序的代碼量。遞歸的能力在于用有限的語句來定義對象的無限集合。一般來說,遞歸需要有邊界條件、遞歸前進段和遞歸返回段。當邊界條件不滿足時,遞歸前進;當邊界條件滿足時,遞歸返回。注意:(1) 遞歸就是在過程或函數里調用自身;(2) 在使用遞歸策略時,必須有一個明確的遞歸結束條件,稱為遞歸出口。“遞歸法,就相當于數

13、學的回歸思想,比如,整數的加法、分數的加法、小數的加法、有理數的加法、實數的加法、代數式的加法,都要回歸到個位數的加法。學習本身就是用已有知識去掌握新知識,用已有知識解決未知問題。”可以用“遞歸法”解決課本知識的學習和題目的解答。3.窮舉法窮舉法,或稱為暴力破解法,其基本思路是:對于要解決的問題,列舉出它的所有可能的情況,逐個判斷有哪些是符合問題所要求的條件,從而得到問題的解。它也常用于對于密碼的破譯,即將密碼進行逐個推算直到找出真正的密碼為止。例如一個已知是四位并且全部由數字組成的密碼,其可能共有10000種組合,因此最多嘗試10000次就能找到正確的密碼。理論上利用這種方法可以破解任何一種

14、密碼,問題只在于如何縮短試誤時間。因此有些人運用計算機來增加效率,有些人輔以字典來縮小密碼組合的范圍。可以有“窮舉法”解決你還沒有掌握的題目類型,越是不會的題目,演草要越多,因為你要窮舉直到找到有效辦法,演草是學好數學的法寶,不是說演草本會出現什么神奇,而是好好地用演草本,會出現神奇,因為題目類型是有限的。4.貪心算法貪心算法是一種對某些求最優解問題的更簡單、更迅速的設計技術。用貪婪法設計算法的特點是一步一步地進行,常以當前情況為基礎根據某個優化測度作最優選擇,而不考慮各種可能的整體情況,它省去了為找最優解要窮盡所有可能而必須耗費的大量時間,它采用自頂向下,以迭代的方法做出相繼的貪心選擇,每做

15、一次貪心選擇就將所求問題簡化為一個規模更小的子問題, 通過每一步貪心選擇,可得到問題的一個最優解,雖然每一步上都要保證能獲得局部最優解,但由此產生的全局解有時不一定是最優的,所以貪婪法不要回溯。貪婪算法是一種改進了的分級處理方法。其核心是根據題意選取一種量度標準。然后將這多個輸入排成這種量度標準所要求的順序,按這種順序一次輸入一個量。如果這個輸入和當前已構成在這種量度意義下的部分最佳解加在一起不能產生一個可行解,則不把此輸入加到這部分解中。這種能夠得到某種量度意義下最優解的分級處理方法稱為貪婪算法。對于一個給定的問題,往往可能有好幾種量度標準。初看起來,這些量度標準似乎都是可取的,但實際上,用

16、其中的大多數量度標準作貪婪處理所得到該量度意義下的最優解并不是問題的最優解,而是次優解。因此,選擇能產生問題最優解的最優量度標準是使用貪婪算法的核心。一般情況下,要選出最優量度標準并不是一件容易的事,但對某問題能選擇出最優量度標準后,用貪婪算法求解則特別有效。最優解可以通過一系列局部最優的選擇即貪婪選擇來達到,根據當前狀態做出在當前看來是最好的選擇,即局部最優解選擇,然后再去解做出這個選擇后產生的相應的子問題。每做一次貪婪選擇就將所求問題簡化為一個規模更小的子問題,最終可得到問題的一個整體最優解。可以用“貪心算法”解決個性和愛好、優勢和弱點、長板和短板等在人腦算法中的選擇。在學校開學期間,應重

17、點解決好不喜歡的事、不喜歡的科目成績弱的科目自己的短板,在寒暑假期間,則可重點做愛好的事優勢變得更優長項變成強項。5.分治法分治法是把一個復雜的問題分成兩個或更多的相同或相似的子問題,再把子問題分成更小的子問題直到最后子問題可以簡單的直接求解,原問題的解即子問題的解的合并。分治法所能解決的問題一般具有以下幾個特征:(1) 該問題的規模縮小到一定的程度就可以容易地解決(2) 該問題可以分解為若干個規模較小的相同問題,即該問題具有最優子結構性質。(3) 利用該問題分解出的子問題的解可以合并為該問題的解;(4) 該問題所分解出的各個子問題是相互獨立的,即子問題之間不包含公共的子子問題。“分治法,是我

18、們人腦最愛用的算法,把復雜變簡單抽象變直觀,可以發現,每天的時間很充足,每門功課都很好學。6.動態規劃法動態規劃是一種在數學和計算機科學中使用的,用于求解包含重疊子問題的最優化問題的方法。其基本思想是,將原問題分解為相似的子問題,在求解的過程中通過子問題的解求出原問題的解。動態規劃的思想是多種算法的基礎,被廣泛應用于計算機科學和工程領域。動態規劃程序設計是對解最優化問題的一種途徑、一種方法,而不是一種特殊算法。不象前面所述的那些搜索或數值計算那樣,具有一個標準的數學表達式和明確清晰的解題方法。動態規劃程序設計往往是針對一種最優化問題,由于各種問題的性質不同,確定最優解的條件也互不相同,因而動態

19、規劃的設計方法對不同的問題,有各具特色的解題方法,而不存在一種萬能的動態規劃算法,可以解決各類最優化問題。動態規劃法,也基本接近“人腦算法”。 因此在學習時,除了要對基本概念和方法正確理解外,必須具體問題具體分析處理,以豐富的想象力去建立模型,用創造性的技巧去求解。7.迭代法迭代法也稱輾轉法,是一種不斷用變量的舊值遞推新值的過程,跟迭代法相對應的是直接法(或者稱為一次解法),即一次性解決問題。迭代法又分為精確迭代和近似迭代。“二分法”和“牛頓迭代法”屬于近似迭代法。迭代算法是用計算機解決問題的一種基本方法。它利用計算機運算速度快、適合做重復性操作的特點,讓計算機對一組指令(或一定步驟)進行重復

20、執行,在每次執行這組指令(或這些步驟)時,都從變量的原值推出它的一個新值。這就是“以不變應萬變”。8.分枝界限法分枝界限法是一個用途十分廣泛的算法,運用這種算法的技巧性很強,不同類型的問題解法也各不相同。分支定界法的基本思想是對有約束條件的最優化問題的所有可行解(數目有限)空間進行搜索。該算法在具體執行時,把全部可行的解空間不斷分割為越來越小的子集(稱為分支),并為每個子集內的解的值計算一個下界或上界(稱為定界)。在每次分支后,對凡是界限超出已知可行解值那些子集不再做進一步分支。這樣,解的許多子集(即搜索樹上的許多結點)就可以不予考慮了,從而縮小了搜索范圍。這一過程一直進行到找出可行解為止,該

21、可行解的值不大于任何子集的界限。因此這種算法一般可以求得最優解。與貪心算法一樣,這種方法也是用來為組合優化問題設計求解算法的,所不同的是它在問題的整個可能解空間搜索,所設計出來的算法雖其時間復雜度比貪婪算法高,但它的優點是與窮舉法類似,都能保證求出問題的最佳解,而且這種方法不是盲目的窮舉搜索,而是在搜索過程中通過限界,可以中途停止對某些不可能得到最優解的子空間進一步搜索(類似于人工智能中的剪枝),故它比窮舉法效率更高。這就是電腦的“智能化”,向“人腦”學習。E算法的表示形式描述算法的方法有多種,常用的有自然語言、結構化流程圖、偽代碼和PAD圖等,其中最普遍的是流程圖。這其實就是數學中的“三種語言”“文字語言”、“符號語言”、“圖形語言”。圖形語言是最高級的數學語言。五、多余老師多余的話語文和數學,為什么是小學到高中,所有基礎學習時

溫馨提示

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

評論

0/150

提交評論