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