第一篇:高中數學 1.1.1 算法的概念教案2 新人教A版必修3
算法的概念
教學目的:理解并掌握算法的概念與意義,會用“算法”的思想編制數學問題的算法。教學重點:算法的設計與算法意識的的培養 教學過程:
一、問題情景:
請大家研究解決下面的一個問題
1.兩個大人和兩個小孩一起渡河,渡口只有一條小船,每次只能渡1 個大人或兩個小孩,他們四人都會劃船,但都不會游泳。試問他們怎樣渡過河去?請寫出一個渡河方案。
(通過學生討論得出渡河方案與步驟如下)
S1 兩個小孩同船過河去; S2 一個小孩劃船回來; S3 一個大人劃船過河去; S4 對岸的小孩劃船回來; S5 兩個小孩同船渡過河去; S6 一個小孩劃船回來;
S7 余下的一個大人獨自劃船渡過河去;對岸的小孩劃船回來; S8 兩個小孩再同時劃船渡過河去。
2.一群小兔一群雞,兩群合到一群里,要數腿共48,要數腦袋整17,多少小兔多少雞?
先列方程組解題,得雞10只,兔7只; 再歸納一般二元一次方程組的通用方法,即用高斯消去法解一般的二元一次?a11x1?a12x2?b1方程組?。
ax?ax?b2222?211令D?a11a22?a21a12,若D?0,方程組無解或有無數多解。若D?0,則x1?b1a22?b2a12ba?b1a21,x2?211。
DD由此可得解二元一次方程組的算法。
S1 計算D?a11a22?a21a12;
S2 如果D?0,則原方程組無解或有無窮多組解;否則(D?0),x1?b1a22?b2a12ba?b1a21,x2?211
DDS3 輸出計算結果x1、x2或者無法求解的信息。
二、數學構建:
算法的概念:由基本運算及規定的運算順序所構成的完整的解題步驟,或者是按照要求設計好的有限的計算序列,并且這樣的步驟或序列能解決一類問題。
算法的五個重要特征:
(1)有窮性:一個算法必須保證執行有限步后結束;(2)確切性:算法的每一步必須有確切的定義;
(3)可行性:算法原則上能夠精確地運行,而且人們用筆和紙做有限次即可完成;
(4)輸入:一個算法有0個或多個輸入,以刻劃運算對象的初始條件。所謂0個輸入是指算法本身定出了初始條件。
(5)輸出:一個算法有1個或多個輸出,以反映對輸入數據加工后的結果。沒有輸出的算法是毫無意義的。
三、知識運用:
例1.一個人帶三只狼和三只羚羊過河,只有一條船,同船可以容納一個人和兩只動物。沒有人在的時候,如果狼的數量不少于羚羊的數量,狼就會吃掉羚羊。(1)設計過河的算法;(2)思考每一步算法所遵循的相同之處原則是什么。
解:算法或步驟如下: S1 人帶兩只狼過河 S2 人自己返回
S3 人帶一只羚羊過河 S4 人帶兩只狼返回 S5 人帶兩只羚羊過河 S6 人自己返回 S7 人帶兩只狼過河
S8 人自己返回帶一只狼過河
例2.寫出一個求有限整數序列中的最大值的算法。解:為了便于理解,算法步驟用自然語言敘述:
S1 先將序列中的第一個整數設為最大值;
S
2將序列中的下一個整數值與“最大值”比較,如果它大于此“最大值”,這時就假定“最大值”就是這個整數;
S3 如果序列中還有其它整數,重復S2;
S4 在序列中一直進行到沒有可比的數為止,這時假定的“最大值”就是這個序列中的最大值。
試用數學語言寫出對任意3個整數a、b、c中最大值的求法
S1 max=a S2 如果b>max,則max=b S3 如果c>max,則max=c, S4 max就是a、b、c中的最大值。
四、學力發展:
1.給出求100!?1?2?3???100的一個算法。
2.給出求點P(x0,y0)關于直線Ax?By?C?0的對稱點的一個算法。
五、課堂小結:
算法的概念:由基本運算及規定的運算順序所構成的完整的解題步驟,或者是按照要求設計好的有限的計算序列,并且這樣的步驟或序列能解決一類問題。
算法的五個重要特征:
(1)有窮性:一個算法必須保證執行有限步后結束;(2)確切性:算法的每一步必須有確切的定義;
(3)可行性:算法原則上能夠精確地運行,而且人們用筆和紙做有限次即可完成;
(4)輸入:一個算法有0個或多個輸入,以刻劃運算對象的初始條件。所謂0個輸入是指算法本身定出了初始條件。
(5)輸出:一個算法有1個或多個輸出,以反映對輸入數據加工后的結果。沒有輸出的算法是毫無意義的。
六、課外作業:
1.優化設計P3-4:變式練習1-10題。2.課本P6:練習1-4題
第二篇:高中數學必修2教學設計: 1.1.1算法的概念
文字資料] 1.1.1算法的概念
算法是指完成一個任務所需要的具體步驟和方法。也就是說給定初始狀態或輸入數據,經過計算機程序的有限次運算,能夠得出所要求或期望的終止狀態或輸出數據。
算法常常含有重復的步驟和一些比較或邏輯判斷。如果一個算法有缺陷,或不適合于某個問題,執行這個算法將不會解決這個問題。不同的算法可能用不同的時間、空間或效率來完成同樣的任務。一個算法的優劣可以用空間復雜度與時間復雜度來衡量。〖算法的歷史〗
“算法”(algorithm)來自于9世紀波斯數學家比阿勒·霍瓦里松的名字al-Khwarizmi,比阿勒·霍瓦里松在數學上提出了算法這個概念。“算法”原為“algorism”,意思是阿拉伯數字的運算法則,在18世紀演變為“algorithm”。第一次編寫算法是Ada Byron于1842年為巴貝奇分析機編寫求解解伯努利方程的程序,因此Ada Byron被大多數人認為是世界上第一位程序員。因為巴貝奇(Charles Babbage)未能完成他的巴貝奇分析機,這個算法未能在巴貝奇分析機上執行。因為“well-defined procedure”缺少數學上精確的定義,19世紀和20世紀早期的數學家、邏輯學家在定義算法上出現了困難。20世紀的英國數學家圖靈提出了著名的圖靈論題,并提出一種假想的計算機的抽象模型,這個模型被稱為圖靈機。圖靈機的出現解決了算法定義的難題,圖靈的思想對算法的發展起到了重要的作用。
一個算法應該具有以下五個重要的特征:
有窮性: 一個算法必須保證執行有限步之后結束;
確切性: 算法的每一步驟必須有確切的定義;
輸入:一個算法有0個或多個輸入,以刻畫運算對象的初始情況,所謂0個輸入是指算法本身定除了初始條件;
輸出:一個算法有一個或多個輸出,以反映對輸入數據加工后的結果。沒有輸出的算法是毫無意義的;
可行性: 算法原則上能夠精確地運行,而且人們用筆和紙做有限次運算后即可完成。
〖形式化算法〗
算法是計算機處理信息的本質,因為計算機程序本質上是一個算法來告訴計算機確切的步驟來執行一個指定的任務,如計算職工的薪水或打印學生的成績單。一般地,當算法在處理信息時,會從輸入設備或數據的存儲地址讀取數據,把結果寫入輸出設備或某個存儲地址供以后再調用。〖算法的實現〗
算法不單單可以用計算機程序來實現,也可以在神經網絡、電路或者機械設備上實現。·例子
這是算法的一個簡單的例子。
如果將數列中的每一個數字看成是一顆豆子的大小,可以將下面的算法形象地稱為“撿豆子”: 首先將第一顆豆子放入口袋中。
從第二顆豆子開始檢查,直到最后一顆豆子。如果正在檢查的豆子比口袋中的還大,則將它撿起放入口袋中,同時丟掉原先口袋中的豆子。
最后口袋中的豆子就是所有的豆子中最大的一顆。下面是一個形式算法,用近似于編程語言的偽代碼表示
給定:一個數列“list“,以及數列的長度”length(list)" largest = list[1] for counter = 2 to length(list): if list[counter] > largest: largest = list[counter] print largest 符號說明: = 用于表示賦值。即:右邊的值被賦予給左邊的變量。List[counter]用于表示數列中的第counter項。例如:如果counter的值是5,那么List[counter]表示數列中的第5項。<= 用于表示“小于或等于”。
==例子==
設兩個變量 M 和 N 1.如果 M < N,則交換 M 和 N 2.以 N 除以 M,得到余數 R 3.判斷 R=0,正確則 N 即為“最大公約數”,否則下一步 4.將 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
〖算法設計和分析的基本方法〗
分治法:字面上的解釋是“分而治之”,就是把一個復雜的問題分成兩個或更多的相同或相似的子問題,再把子問題分成更小的子問題??直到最后子問題可以簡單的直接求解,原問題的解即子問題的解的合并。這個技巧是很多高效算法的基礎,如排序算法(快速排序,歸并排序),傅立葉變換(快速傅立葉變換)??
動態規劃:動態規劃在查找有很多重疊子問題的情況的最優解時有效。它將問題重新組合成子問題。為了避免多次解決這些子問題,它們的結果都逐漸被計算并被保存,從簡單的問題直到整個
因此,動態規劃保存遞歸時的結果,因而不會在解決同樣的問題時花費時間。
貪心法(亦作饕餮法):就是一種在每一步選擇中都采取在當前狀態下最好/優的選擇,從而希望導致結果是最好/優的算法。貪心法可以解決一些最優性問題,如:求圖中的最小生成樹、求哈夫曼編碼??對于其他問題,貪心法一般不能得到我們所要求的答案。一旦一個問題可以通過貪心法來解決,那么貪心法一般是解決這個問題的最好辦法。由于貪心法的高效性以及其所求得的答案比較接近最優結果,貪心法也可以用作輔助算法或者直接解決一些要求結果不特別精確的問題。〖算法的分類〗
·基本算法 〔枚舉 搜索(深度優先搜索 廣度優先搜索 啟發式搜索 遺傳算法)〕 ·數據結構的算法 ·數論與代數算法
·計算幾何的算法(凸包算法)
·圖論的算法(哈夫曼編碼 樹的遍歷 最短路徑算法 最小生成樹算法 最小樹形圖 網絡流算法 匹配算法)· 動態規劃
·其他(數值分析 加密算法 排序算法 檢索算法 隨機化算)
還可以分成串行算法、并行算法。
〖算法的復雜性〗
算法的復雜性是算法效率的度量,在評價算法性能時,復雜性是一個重要的依據。算法的復雜性的程度與運行該算法所需要的計算機資源的多少有關,所需要的資源越多,表明該算法的復雜性越高;所需要的資源越少,表明該算法的復雜性越低。
計算機的資源,最重要的是運算所需的時間和存儲程序和數據所需的空間資源,算法的復雜性有時間復雜性和空間復雜性之分。
算法在計算機上執行運算,需要一定的存儲空間存放描述算法的程序和算法所需的數據,計算機完成運算任務需要一定的時間。根據不同的算法寫出的程序放在計算機上運算時,所需要的時間和空間是不同的,算法的復雜性是對算法運算所需時間和空間的一種度量。不同的計算機其運算速度相差很大,在衡量一個算法的復雜性要注意到這一點。
對于任意給定的問題,設計出復雜性盡可能低的算法是在設計算法時考慮的一個重要目標。另外,當給定的問題已有多種算法時,選擇其中復雜性最低者,是在選用算法時應遵循的一個重要準則。因此,算法的復雜性分析對算法的設計或選用有著
在討論算法的復雜性時,有兩個問題要弄清楚:
(1)一個算法的復雜性用怎樣的一個量來表達;
(2)怎樣計算一個給定算法的復雜性。
找到求解一個問題的算法后,接著就是該算法的實現,至于是否可以找到實現的方法,取決于算法的可計算性和計算的復雜性,該問題是否存在求解算法,能否提供算法所需要的時間資源和空間資源。
篩選法求質數
質數亦叫作素數,是大于1的自然數,并且除了該數本身和1以外沒有其它的數能整除它,如2,3,5,7,11,13,?,質數有無窮多個。
(1)判斷143是否為質數。解:
Step1:143÷2不為整數; Step2:143÷3不為整數; Step3:143÷4不為整數; Step4:143÷5不為整數; Step5:143÷6不為整數; Step6:143÷7不為整數; Step7:143÷8不為整數; Step8:143÷9不為整數;
:143÷10不為整數;
Step10:143÷11=13,143能被11整除; Step11:結論:143不是質數。(2)判斷17是否為質數。解:
Step1:17÷2不為整數; Step2:17÷3不為整數; Step3:17÷4不為整數; Step4:17÷5不為整數; Step5:17÷6不為整數; Step6:17÷7不為整數; Step7:17÷8不為整數; Step8:17÷9不為整數; Step9:17÷10不為整數; Step10:17÷11不為整數; Step11:17÷12不為整數; Step12:17÷13不為整數; Step13:17÷14不為整數; Step14:17÷15不為整數; Step15:17÷16不為整數; Step16:結論:17是質數。
3)判斷216091是不是質數
該題的計算量非常大,我們可以把算法編為程序,由計算機幫我們計算。
(4)設計一個算法,輸入大于2的整數n,由計算機判斷它是不是質數。
解:Step1:輸入整數n;
Step2:依次檢驗2~(n-1)是不是n的因數,若有這樣的數,則n不是質數,否則,n為質數。Step3:輸出結果。
說明:其中第3步在計算機中可以通過一個循環來實現,今后會學到
第三篇:高中數學必修2教學設計:1.1.1算法的概念教案
[教案]
1.1.1算法的概念 教學目標:
(1)了解算法的含義,體會算法的思想。(2)能夠用自然語言敘述算法。(3)掌握正確的算法應滿足的要求。(4)會寫出解線性方程(組)的算法。教學重點和難點
重點:算法的含義、解二元一次方程組和判斷一個數為質數的算法設計。難點:把自然語言轉化為算法語言。.教學基本流程
(1)由生活實例發郵件和猜價格,體會算法思想。(2)轉到數學問題,體會算法思想,設計自然語言算法。(3)總結概括算法的概念和特征。(4)兩個例子鞏固提高。(5)反饋練習,課堂小結。教學情景設計
一、新課引入
算籌、算盤、計算機等從古到今計算工具的變化,現了中國古代數學與現代計算機科學的聯系,它們的基礎都是“算法”。
算法這個名詞雖然聽起來很陌生,但它確是一個古老的概念。我們卻從小學就開始接觸算法,如,做四則運算要先乘除后加減,從里往外脫括弧,豎式筆算等都是算法,至于乘法口訣、珠算口訣更是算法的具體體現。廣
科學計算、科學實驗、理論研究。算法的研究和應用正是本課程的主題!
二、問題設計
1、假如你的朋友不會發郵件,你能教他嗎?,請你寫出步驟。
(設計意圖:讓S從生活中的實例體會算法就是做某一件事的步驟或程序)第一步:打開電子信箱;第二步:點擊“寫郵件”;第三步:輸入發送地址;第四步:輸入主題;第五步:輸入信件內容;第六步;點擊“發送郵件”
2、電視節目中,有一種有趣的“猜數”游戲:?現有一商品,價格在0到8000元之間,釆取怎樣的策略才能在較短的時間內說出正確的答案呢? 第一步:報“4000”;第二步:若答“高了”,就報“2000”;否則報“6000”;第三步:重復第二步的報數方法,直至得到正確結果。
T點評:我們做任何一件事,都是在一定的條件下按某種順序執行的一系列操作。解決數學問題也常常如此。例如:用加減消元法解二元一次方程組時,就可以按照某一程序進行操作;將上述程序換成計算機能識別的語言后,就能借助計算機極大地提高解決問題的速度。因此探索解決問題的統一程序的思想是十分重要的,對一類問題的機械的、統一的求解程序就是算法。
3、面對一個需要解決的問題?如何設計解決問題的操作步驟??怎樣用數學語言描述這些操作序列?(設計意圖:讓S體會數學問題的步驟或程序就是算法)
例1 給出求1+2+3+4+5的一個算法.算法1:連續加和求得,第一步 : 計算1+2,得到3;
第二步:將第一步中的運算結果3與3相加,得到6;
第三步:將第二步中的運算結果6與4相加,得到10;
第四步:將第三步中的運算結果10與5相加,得到15.算法2:可以運用公式1+2+3+……+n=n(n+1)/2直接計算.第一步:
取n=5;
第二步:計算n(n+1)/2;
第三步:輸出運算結果.T點評:比較上二種算法,算法2更簡單,步驟少,所以利用公式解決問題是最理想、合算的算法.因此在尋求算法的過程中,首先是利用公式.例2.給出解二元一次方程組
?2x?y?7(1)?(2)?4x?5y?11我們用消元法求解這個方程組,步驟是: 第一步:將方程(2)中x的系數4除以方程(1)中x的系數2, 得到乘數m=2.第二步:方程(2)減去方程(1)乘以m,消去方程(1)中的x項,得到:3y=-
3y=-1;第三步:將y=-1代入方程(1),得到x=4.寫出求下方程組的解的算法.?a1x?b1y?c1??a2x?b2y?c2①②?a1b2?a2b1?0?
第一步:②×a1-①×a2,得:?a1b2?a2b1?y?a1c2?a2c1③
a1c2?a2c1 第二步:解③得 y?; a1b2?a2b1
a1c2?a2c1b2c1?b1c2 第三步:將y?代入①,得x?.a1b2?a2b1a1b2?a2b1
三、歸納總結 算法的概念和特點
概念:通常指按照一定規則解決某一類問題的明確的和有限的步驟。(現在,算法通常可以編成程序,讓計算機執行并解決問題。)
特征:(1)有限性:一個算法的步驟序列是有限的,必須在有限操作之后停止,.(2)確定性:算法中的每一步應該是確定的并且能有效地執行且得到確定的結果,而不應當是模棱兩可.(3)邏輯性:算法從初始步驟開始,分為若干明確的步驟,每一個步驟只能有一個確定的后繼步驟,前一步是后一步的前提,只有執行完前一步才能進行下一步,并且每一步都準確無誤,才能完成問題.(4)不唯一性:求解某一個問題的解法不一定是唯一的,對于一個問題可以有不同的算法.(5)普遍性:很多具體的問題,都可以設計合理的算法去解決。
四、鞏固提高
例
3、任意給定一個大于1的整數n,試設計一個程序或步驟對n是否為質數做出判斷.分析:(1)質數是只能被1和自身整除的大于1的整數.(2)要判斷一個大于1的整數n是否為質數,只要根據質數的定義,用比這個整數小的數去除n,如果它只能被1和本身整除,而不能被其它整數整除,則這個數便是質數.解:算法:
第一步:判斷n是否等于2.若n=2,則n是質數;若n>2,則執行第二步.第二步:依次從2~(n-1)檢驗是不是n的因數,即整除n的數.若有這樣的數,則n不是質數;若沒有這樣的數,則n是質數.T點評:本算法是用自然語言的形式描述的.設計算法一定要做到以下要求:(1)寫出的算法必須能解決一類問題,并且能夠重復使用.(2)要使算法盡量簡單、步驟盡量少.(3)要保證算法正確,且計算機能夠執行.例
4、.用二分法設計一個求方程 的近似根的算法.分析:該算法實質是求 的近似值的一個最基本的方法.解:設所求近似根與精確解的差的絕對值不超過0.005,算法: 第一步:令.因為,所以設x1=1,x2=2.第二步:令,判斷f(m)是否為0.若是,則m為所求;若否,則繼續判斷 大于0還是小于0.第三步:若,則x1=m;否則,令x2=m.第四步:判斷 是否成立?若是,則x1、x2之間的任意值均為滿足條件的近似根;若否,則返回第二步.說明:按以上步驟,我們將依次得到課本第4頁的表1-1和圖1.1-1.于是,開區間(1.4140625,1.41796875)中的實數都滿足假設條件的原方程是近似根.運行結果:
五、練習反饋
1、任意給定一個正實數,設計一個算法求以這個數為半徑的圓的面積.2、有藍和黑兩個墨水瓶,但現在卻錯把藍墨水裝在了黑墨水瓶中,黑墨水錯裝在了藍墨水瓶中,要求將其互換,請你設計算法解決這一問題。
六、小結作業:
1、算法概念和算法的基本思想
(1)算法與一般意義上具體問題的解法的聯系與區別;(2)算法的五個特征。
2、利用算法的思想和方法解決實際問題,能寫出一此簡單問題的算法。
第四篇:人教B版高中數學必修三+1.1.1算法的概念+教案
1.1.1算法的概念
教學目標:
1.知識與技能目標
(1)了解算法的含義,體會算法的思想。(2)能夠說明解決簡單問題的算法步驟。
(3)了解正確的算法應滿足的要求,即算法的特點。
(4)初步了解高斯消去法的思想,會寫出解線性方程(組)的算法。(5)了解利用Scilab求二元一次方程組解的方法。2.過程與方法目標
通過分析高斯消去法的過程,體會算法的思想,發展對具體問題的過程與 步驟的分析能力,發展從具體問題中提煉算法思想的能力,發展有條理地清晰地 思維的能力,提高學生的算法素養。
3.情感、態度與價值觀目標
通過本節的學習,使我們對計算機的算法語言有一個基本的了解,明確算法的要求,認識到計算機是人類征服自然的一各有力工具,進一步提高探索、認識世界的能力。
重點:算法的概念和算法的合理表述。難點:算法的合理表述、高斯消去法。
教學過程:
一、引入新課
1.要把大象裝入冰箱分幾步? 第一步 把冰箱打開。第二步 把大象放進冰箱。第三步 把冰箱門關上。
2.組織學生模擬參加幸運52的競猜游戲。
價格競猜中我們運用了曾經學過的二分法的數學思想。利用二分法求函數的零點時,我們是一步一步進行的,每一步都能得到一個結果,如果結果滿足精確度則停止運算;若不滿足則繼續尋找,直到找到滿足精確度的結果為止。這樣的求解過程就是這一類問題的算法。今天我們就來學習算法的概念。
我們學過的求函數零點的二分法以及在解析幾何初步中利用公式計算的幾何問題進行
分步求解,這些計算方法都有一個共同的特點,就是對一類問題(不是個別問題)都有效,計算可以一步一步地進行,每一步都能得到惟一的結果,通常我們把這一類問題的求解過程叫做解決這一類問題的算法。這些算法雖然很機械,計算量大,但優點是一種通法,只要按部就班地去做,總能算出結果。通常把算法過程成為“數學機械化”,數學機械化最大的優點是它可以利用計算機來完成。所以學習算法是為了學習編輯程序,讓計算機去幫助我們去解決更多的問題。
用學生熟悉的問題來引入算法的概念,降低新課的入門難度,有利于學生正確理解算法的概念。二.新課講解
隨著計算科學和信息技術的飛速發展,算法的思想已經滲透到了社會的方方面面。在以前的學習中,雖然沒有出現算法這個名詞,但是實際在數學學習中已經滲透了大量的算法的思想,如四則運算的過程(先乘除后加減),完成這些工作都需要一系列程序化的步驟,這就是算法的思想。
(一)算法的概念:算法可以理解為由基本運算及規定的運算順序構成的完整的解題步驟,或看成按要求設計好的有限的、確切的計算序列,并且這樣的步驟或序列能解決一類問題。
(二)描述算法的方式:自然語言、數學語言、形式語言、框圖語言 【例1】寫出你在家中燒開水的過程。解: S1、往壺內注水; S2、點火加熱;
S3、觀察:如果水開,則停止燒火,否則繼續燒火; S4、如果水未開,重復“3”直至水開。
總結:1其實大部分事情都是按照一定的程序執行,因此要理清事情的每一步。2判斷水是否燒開與是否繼續燒火的過程是一個反饋與判斷過程,因此有必要不斷重復過程3。
廣義地說,對于一項任務,按照事先設計好的步驟,一步一步地執行并在有限步內完成任務,則這些步驟稱為該任務的一個算法.簡單地說,算法就是就是完成工作所需要的一系列程序化的步驟,就是做某一件事的步驟或程序。菜譜是做菜肴的算法,洗衣機的使用說明書是操作洗衣機的算法,歌譜是一首歌曲的算法。在數學中,主要研究計算機能實現的算法,即按照某種機械程序步驟一定可以得到結果的解決問題的程序。比如解方程的算法、函數求值的算法、作圖的算法,等等。
【例2】一群小兔一群雞,兩群合到一群里,要數腿共48,要數腦袋整17,多少小兔
多少雞?
算法1:
解 :S1 首先計算沒有小兔時,小雞的數為:17只,腿的總數為34條。
S2 再確定每多一只小兔、減少一只小雞增加的腿數2條。S3 再根據缺的腿的條數確定小兔的數量:(48-34)/2=7只 S4 最后確定小雞的數量:17-7=10只.算法2:
解 :S1 首先設x只小雞,y只小兔。
?2x?4y?48S2 再列方程組為:?
x?y?17?S3 解方程組得:??y?7
?x?10S4 指出小雞10只,小兔7只。
本題講解緊扣算法的定義,層層誘導,提示學生如何設計步驟,可以先由學生提出,師生共同總結。最后提示學生,一個問題算法可能不止一個。深化對算法概念的理解,使學生體會到算法并不是高滲莫測的東西,實際上是我們從前解題步驟的總結。
再歸納一般二元一次方程組的通用方法,即用高斯消去法解一般的二元一次方程組
?a11x1?a12x2?b1。??a21x1?a22x2?b2S1 假定a11?0(如果a11?0,可以將第一個方程與第二個方程互換),① ?(?a21aaab)?②,得到:(a22?2112)x2?b2?211 a11a11a11原方程組化為:
(3)?a11x1?a12x2?b1 ???aa?aax?ab?ab(4)21122112211?1122S2 如果a11a22?a21a12?0,輸出方程組無解或有無數組解
如果a11a22?a21a12?0,解(4)得x2?a11b2?a21b1(5)
a11a22?a21a1
2S3 將(5)代入(3),整理得:x1?a22b1?a12b2(6)
a11a22?a21a12S4 輸出結果x1,x2、方程組無解或有無數組解
令D?a11a22?a21a12,若D?0,方程組無解或有無數多解。若D?0,則x1?b1a22?b2a12ba?b1a21,x2?211。
DD由此可得解二元一次方程組的算法。
S
1計算D?a11a22?a21a12;
S
2如果D?0,則原方程組無解或有無窮多組解;否則(D?0),x1?b1a22?b2a12ba?b1a21,x2?211
DDS
3輸出計算結果x1、x2或者無法求解的信息。
(三)寫算法的要求
算法不同于求解一個具體問題的方法,是這種方法的高度概括。一個好的算法有如下要求:
1.求解的過程是事先確定的,事先都考慮好了,有確定的步驟.2.寫出的算法,必須能解決一類問題(如一元二次方程求根公式),并且能重復使用。3.算法執行過程中的每一步都是能夠做到的,要簡潔,要清晰可讀,不能弄搞繁雜,以以致于易程序化。
4.算法過程要能一步一步執行,每一步執行的操作,必須確切,不能含混不清,而且在有限步內有結果,應完成給定的任務。
(四)算法的特征
確定性,通用性,可行性,有窮性,有輸出
【例3】.寫出一個求有限整數序列中的最大值的算法。解:為了便于理解,算法步驟用自然語言敘述: 算法1:
S1 先假定序列中的第一個數為“最大值”。
S2 將序列的第二個整數值與“最大值”比較,如果第二個整數大于“最大值”,這時就假定這個數為“最大值”。
S3 將序列的第三個整數值與“最大值”比較,如果第三個整數大于“最大值”,這時就假定這個數為“最大值”。
S4 將序列的第四個整數值與“最大值”比較,如果第四個整數大于“最大值”,這時就假定這個數為“最大值” 依此類推
Sn 將序列的第n個整數值與“最大值”比較,如果第n個整數大于“最大值”,這時就假定這這個數為“最大值”。
Sn+1 直到序列中沒有可比的數為止,“最大值”就是序列的最大值。算法2 S1 先假定序列中的第一個數為“最大值”。
S2 將序列中的下一個整數值與“最大值”比較,如果大于“最大值”,這時就假定這個數為“最大值”。
S3 如果序列中還有其它整數,重復S2。
S4 直到序列中沒有可比的數為止,這時假定的“最大值”就是序列的最大值。帶領學生分析題目,找出算法。讓學生觀察算法1,思考如何簡化算法?讓學生體會到算法的特點是:“機械的、呆板的、可以按部就班執行”,體會到學習算法的意義和必要性。體會到算法優化的意義,指出算法要設計合理,運行要高效,讓學生體會順序結構的簡單直觀,但有時卻很繁瑣的特點。促使學生產生改進方法的欲望。
試用數學語言寫出對任意3個整數a、b、c中最大值的求法
S
1max=a S
2如果b>max,則max=b S
3如果c>max,則max=c, S
4max就是a、b、c中的最大值。
三、鞏固練習
1.給出求100!?1?2?3???100的一個算法。
2.給出求點P(x0,y0)關于直線Ax?By?C?0的對稱點的一個算法。
3.一位商人有9枚銀元,其中有1枚略輕的是假銀元。你能用天平(不用砝碼)將假銀元找出來嗎?
四、課堂小結:
1.算法的概念:由基本運算及規定的運算順序所構成的完整的解題步驟,或者是按照要求設計好的有限的計算序列,并且這樣的步驟或序列能解決一類問題。
2.描述算法的方式:自然語言、數學語言、形式語言、框圖語言 3.算法的特征:確定性,通用性,可行性,有窮性,有輸出
五、作業
P7練習A
P8練習B 1、2、3
第五篇:《1.1.1算法的概念》教案
1.1.1 算法的概念(第1課時)
【課程標準】通過對解決具體問題過程與步驟的分析(如二元一次方程
組求解等問題),體會算法的思想,了解算法的含義.【教學目標】1.理解算法的概念與特點;
2.學會用自然語言描述算法,體會算法思想; 3.培養學生邏輯思維能力與表達能力.【教學重點】算法概念以及用自然語言描述算法
【教學難點】用自然語言描述算法
【教學過程】
一、游戲引入
1.漢諾塔游戲;(詳見課件演示)2.雞兔同籠問題。
雞兔同籠問題:雞和兔共有若干只,數腿共有94條,數頭共35只,請問各有雞兔多少只?能不能說出解決這個問題的步驟(過程)!
二、新課探究
a1x?b1y?c1,1、對于一般的二元一次方程組a2x?b2y?c2,?其中a1b2?a2b1?0,能否找到一個程序化的求解步驟:
2、算法的概念
通過對以上幾個問題的分析,我們對算法有了一個初步的了解.在解決某些問題時,需要設計出一系列可操作或可計算的步驟,通過實施這些步驟來解決問題,通常把這些在數學中叫做算法。現代意義上的“算法”通常是指可以用計算機來解決的某一類問題的程序或步驟,這些程序或步驟必須是明確和有效的,而且能夠在有限步之內完成.三、知識應用
1.說說你在家里燒開水過程的一個算法.第一步:把水注入電鍋; 第二步:打開電源把水燒開; 第三步:把燒開的水注入熱水瓶.(以上算法是解決某一問題的程序或步驟)2.例1(1)設計一個算法,判斷7是否為質數.(2)設計一個算法,判斷35是否是質數.3.探究:設計一個算法,判斷整數n(n>2)是否為質數.四、課堂練習
1、(課本第5頁練習1)任意給定一個正實數,設計一個算法求以這個數為半徑的圓的面積.解:第一步:輸入任意正實數r 第二步:計算S??r2; 第三步:輸出圓的面積S.2、(課本第5頁練習2)任意給定一個大于1的正整數n,設計一個算法求出n的所有因數.解:根據因數的定義,可設計出下面的一個算法: 第一步:輸入大于1的正整數n.第二步:判斷n是否等于2,若n?2,則n的因數為1,n;若n?2,則執行第三步.第三步:依次從2到n?1檢驗是不是整除n,若整除n,則是n的因數;若不整除n,則不是n的因數.五、課堂小結 1.算法的特性:
①有限性:一個算法的步驟序列是有限的,它應在有限步操作之后停止,而不能是無限的.②確定性:算法中的每一步應該是確定的并且能有效地執行且得到確定的結果,而不應當是模棱兩可.③可行性:算法中的每一步操作都必須是可執行的,也就是說算法中的每一步都能通過手工和機器在有限時間內完成.2.描述算法的一般步驟:
①輸入數據.②數據處理.③輸出結果.六、作業
1、求1×3 × 5 × 7 × 9 × 11的值,寫出其算法。
2、寫出解不等式 x2?2x?3?0的一個算法。
七、課后反思: