王森林

如果我們要穿鞋子和襪子,是先穿鞋子?還是先穿襪子?如果先穿鞋子,襪子就不好穿了,所以必須先穿襪子再穿鞋子.這樣的問題在我們的日常生活中經常遇到,如果大家去辦二代居民身份證,到了政務辦公點,你先要看看立在醒目處的辦證流程圖.流程圖清楚地告訴我們第一步做什么,第二步做什么……這樣不僅知道怎么做,更重要的是提高了我們辦事的效率,它的本質就是讓我們有條理、有步驟地去做事情,抽象到數學中,也有類似的問題,即算法.
1.什么是算法
王尚志教授指出:“數學課程中的算法既不是簡單講算法語言,也不是在講信息技術,最重的就是講算理”,Ruby之父松本行弘也曾表示,注重的是算法而不是T具.
《數學課程標準解讀》認為“機械地按照某種確定的步驟行事,通過一系列的簡單計算操作,完成復雜計算的過程,被人們稱為‘算法的過程”.因此算法可以被理解為解決某類問題所采取的有限的方法或步驟.算法重視“算則”,更重視“算理”.比如說,解一元一次方程的算法概括起來即為:
①去分母;
②去括號;
③移項;
④合并同類項;
⑤用未知數的系數的倒數乘方程的兩端.
2.算法在數學學科中的地位和作用
中國古代數學以算法為主要特征,取得了舉世公認的偉大成就.算法進入中學數學課程,既反映了時代的要求,也是中國數學思想在一個新的層次上的復興.
①算法學習有助于提升我們的運算能力.當你在運算中構造、設計、選擇一個合理的運算步驟,你就會提高運算的正確率,更重要的是提高運算的效率,
②算法學習能夠培養我們的邏輯思維能力.算法一方面有具體化、程序化、機械化的特點,同時又有抽象性、概括性和精確性.對于一個具體算法而言,從算法分析到算法語言的實現,任何一個疏漏或錯誤將導致算法的失敗,所以可以通過算法設計的學習來培養邏輯思維能力.
③算法的學習可以幫助我們規劃生活,讓我們的生活變得井井有條,從而提高我們的生活品質.
3.算法案例分析
學習算法的意義不僅僅是解決一個具體的數學問題,而且還能培養我們如何用算法的思想去思考問題.下面是一個算法學習案例的片段.
問題:試求下列幾組數的最大公因數:
(1) 32和16;(2) 18和30;(3) 204和85;(4)8 251和6 105.
(1)(2)我們很容易解決,(3)(4)有些困難,我們應該怎么辦呢?從前面兩小題的解法中能否得到啟發呢?
我們先來求204和85的最大公因數:
可以發現它們的最大公因數就在1-- 85中取,既然是最大的,會不會就是85呢?
第一步:Mod(204,85) =34(Mod表示取余運算,即204=85×2+34)
(啟發:有余數,85不是最大公因數,由上面的等式能發現什么?——能整除204和85必須能整除85和34,從而將求204和85的最大公因數轉化為求85和34的最大公因數,接下來呢?)
第二步、第三步……
Mod (85,34)一17,
Mod (34,17)一0,
故(204,85)一(85,34)=(34,17)一
求(204,85)通過輾轉相除,最終轉化為求(34,17),化繁為簡,體現“轉化”的思想.大家可以嘗試求(8 251,6 105).
你能理解這種方法嗎?你能歸納并總結這種方法和步驟嗎?你能將它推廣到一般情況嗎?
如果換成任意兩個正整數以,6(“>6),是否都可用這種方法求最大公因數?步驟是什么?
先用大數a除以小數6,求出余數r(0≤r<6),a=b×q+r;若余數r為0,則除數6就是最大公因數;若余數r≠0,則把除數6作為新的被除數,把余數,,作為新的除數循環運算,直到余數r為0,此時的除數就是最大公因數,
解決這個問題的方法是統一的,步驟是有限的,每個步驟是明確的,符合算法的特點——有限性和確定性.如果能編寫出計算機程序,那么無論兩個正整數如何變換,我們都能很快得到答案,如圖1.
由幾個具體的例子尋找解決問題的方法和步驟,并且抽象到一般情況,形成具體的程序化的解決問題的方法,在這個過程中,我們大家感受并體會到了條理化、程序化的算法思想.
4.高中數學課程中算法的意義
近年來在高考中都有算法題,這也說明對算法思想的重視,所以在學習算法時,應該把算法思想放在第一位,在其他章節或解題過程中要滲透算法思想,特別是把復雜問題轉化為機械執行的算法的意識和能力,這種意識和能力對解題能力的培養,思維品質的優化尤其重要.endprint