【文章內(nèi)容簡介】
就假定“最大值”就是這個整數(shù);S3 如果序列中還有其它整數(shù),重復(fù)S2;S4 在序列中一直進行到?jīng)]有可比的數(shù)為止,這時假定的“最大值”就是這個序列中的最大值。試用數(shù)學語言寫出對任意3個整數(shù)a、b、c中最大值的求法S1 max=a S2 如果bmax,則max=b S3 如果cmax,則max=c, S4 max就是a、b、c中的最大值。四、學力發(fā)展:1.給出求100!=1180。2180。3180。L180。100的一個算法。2.給出求點P(x0,y0)關(guān)于直線Ax+By+C=0的對稱點的一個算法。五、課堂小結(jié):算法的概念:由基本運算及規(guī)定的運算順序所構(gòu)成的完整的解題步驟,或者是按照要求設(shè)計好的有限的計算序列,并且這樣的步驟或序列能解決一類問題。算法的五個重要特征:(1)有窮性:一個算法必須保證執(zhí)行有限步后結(jié)束;(2)確切性:算法的每一步必須有確切的定義;(3)可行性:算法原則上能夠精確地運行,而且人們用筆和紙做有限次即可完成;(4)輸入:一個算法有0個或多個輸入,以刻劃運算對象的初始條件。所謂0個輸入是指算法本身定出了初始條件。(5)輸出:一個算法有1個或多個輸出,以反映對輸入數(shù)據(jù)加工后的結(jié)果。沒有輸出的算法是毫無意義的。六、課外作業(yè):1.優(yōu)化設(shè)計P34:變式練習110題。2.課本P6:練習14題第三篇:高中數(shù)學必修2教學設(shè)計: 文字資料] 算法是指完成一個任務(wù)所需要的具體步驟和方法。也就是說給定初始狀態(tài)或輸入數(shù)據(jù),經(jīng)過計算機程序的有限次運算,能夠得出所要求或期望的終止狀態(tài)或輸出數(shù)據(jù)。算法常常含有重復(fù)的步驟和一些比較或邏輯判斷。如果一個算法有缺陷,或不適合于某個問題,執(zhí)行這個算法將不會解決這個問題。不同的算法可能用不同的時間、空間或效率來完成同樣的任務(wù)。一個算法的優(yōu)劣可以用空間復(fù)雜度與時間復(fù)雜度來衡量。〖算法的歷史〗“算法”(algorithm)來自于9世紀波斯數(shù)學家比阿勒霍瓦里松的名字alKhwarizmi,比阿勒霍瓦里松在數(shù)學上提出了算法這個概念?!八惴ā痹瓰椤癮lgorism”,意思是阿拉伯數(shù)字的運算法則,在18世紀演變?yōu)椤癮lgorithm”。第一次編寫算法是Ada Byron于1842年為巴貝奇分析機編寫求解解伯努利方程的程序,因此Ada Byron被大多數(shù)人認為是世界上第一位程序員。因為巴貝奇(Charles Babbage)未能完成他的巴貝奇分析機,這個算法未能在巴貝奇分析機上執(zhí)行。因為“welldefined procedure”缺少數(shù)學上精確的定義,19世紀和20世紀早期的數(shù)學家、邏輯學家在定義算法上出現(xiàn)了困難。20世紀的英國數(shù)學家圖靈提出了著名的圖靈論題,并提出一種假想的計算機的抽象模型,這個模型被稱為圖靈機。圖靈機的出現(xiàn)解決了算法定義的難題,圖靈的思想對算法的發(fā)展起到了重要的作用。一個算法應(yīng)該具有以下五個重要的特征:有窮性: 一個算法必須保證執(zhí)行有限步之后結(jié)束;確切性: 算法的每一步驟必須有確切的定義;輸入:一個算法有0個或多個輸入,以刻畫運算對象的初始情況,所謂0個輸入是指算法本身定除了初始條件;輸出:一個算法有一個或多個輸出,以反映對輸入數(shù)據(jù)加工后的結(jié)果。沒有輸出的算法是毫無意義的;可行性: 算法原則上能夠精確地運行,而且人們用筆和紙做有限次運算后即可完成?!夹问交惴ā剿惴ㄊ怯嬎銠C處理信息的本質(zhì),因為計算機程序本質(zhì)上是一個算法來告訴計算機確切的步驟來執(zhí)行一個指定的任務(wù),如計算職工的薪水或打印學生的成績單。一般地,當算法在處理信息時,會從輸入設(shè)備或數(shù)據(jù)的存儲地址讀取數(shù)據(jù),把結(jié)果寫入輸出設(shè)備或某個存儲地址供以后再調(diào)用。〖算法的實現(xiàn)〗算法不單單可以用計算機程序來實現(xiàn),也可以在神經(jīng)網(wǎng)絡(luò)、電路或者機械設(shè)備上實現(xiàn)。例子這是算法的一個簡單的例子。如果將數(shù)列中的每一個數(shù)字看成是一顆豆子的大小,可以將下面的算法形象地稱為“撿豆子”: 首先將第一顆豆子放入口袋中。從第二顆豆子開始檢查,直到最后一顆豆子。如果正在檢查的豆子比口袋中的還大,則將它撿起放入口袋中,同時丟掉原先口袋中的豆子。最后口袋中的豆子就是所有的豆子中最大的一顆。下面是一個形式算法,用近似于編程語言的偽代碼表示給定:一個數(shù)列“l(fā)ist“,以及數(shù)列的長度”length(list) largest = list[1] for counter = 2 to length(list): if list[counter] largest: largest = list[counter] print largest 符號說明: = 用于表示賦值。即:右邊的值被賦予給左邊的變量。List[counter]用于表示數(shù)列中的第counter項。例如:如果counter的值是5,那么List[counter]表示數(shù)列中的第5項。==例子==設(shè)兩個變量 M 和 N M N,則交換 M 和 N N 除以 M,得到余數(shù) R R=0,正確則 N 即為“最大公約數(shù)”,否則下一步 N 賦值給 M,將 R 賦值給 N,重做第一步。用“Basic 代碼”表示--If M N Then Swap M,N Do While R 0 R = M Mod N M = N N = R Loop Print R〖算法設(shè)計和分析的基本方法〗分治法:字面上的解釋是“分而治之”,就是把一個復(fù)雜的問題分成兩個或更多的相同或相似的子問題,再把子問題分成更小的子問題??直到最后子問題可以簡單的直接求解,原問題的解即子問題的解的合并。這個技巧是很多高效算法的基礎(chǔ),如排序算法(快速排序,歸并排序),傅立葉變換(快速傅立葉變換)??動態(tài)規(guī)劃:動態(tài)規(guī)劃在查找有很多重疊子問題的情況的最優(yōu)解時有效。它將問題重新組合成子問題。為了避免多次解決這些子問題,它們的結(jié)果都