§1.1.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是質數.說明:本算法是用自然語言的形式描述的.設計算法一定要做到以下要求:(1)寫出的算法必須能解決一類問題,并且能夠重復使用.(2)要使算法盡量簡單、步驟盡量少.(3)要保證算法正確,且計算機能夠執行.利用ti-voyage200圖形計算器演示:(學生已經被吸引住了)運行 例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:寫出解方程x2-2x-3=0的一個算法。解:算法1:第一步:移項,得x2-2x-3=0; ①第二步:①式兩邊同加1并配方,得(x-1)2=4; ②第三步:②式兩邊開方,得x-1=±2; ③第四步:解③得x=3或x=-1。算法2:第一步:計算方程的判別式判斷其符號△=22+4×3=16>0;第二步:將a=1,b=-2,c=-3代入求根公式x=,得x1=3,x2=-1評析:比較兩種算法,算法2更簡單,步驟少,所以利用公式解決問題是最理想、合算的算法。因此在尋求算法的過程中,首先是利用公式。