趙 軍
算法是數學內容以及數學思想方法的重要組成部分,也是計算機應用的重要基礎.在信息技術高度發達的現代社會,算法思想應該是公民具備的科學素養之一.作為《新課程標準》增加的新內容,算法走進了中學數學.在中學數學課程的學習中,除了要讓學生了解算法的基本含義和學習基本算法語句,更重要的是讓學生體會和應用算法思想,特別是要做好算法思想在整個中學數學中的滲透.
1.算法進入了中學數學
1.1 中學數學中的算法概念
“算法”屬于邏輯數學的一個基本概念,不能用更簡單的概念來給它正式下定義,只能像其他數學范疇一樣,直接從經驗中抽象出來.《新課標》中提出“通過對解決具體問題過程與步驟的分析(如,二元一次方程組求解等問題),體會算法的思想,了解算法的含義”,學生“通過模仿、操作、探索,經歷通過設計程序框圖表達解決問題的過程”,“經歷將具體問題的程序框圖轉化為程序語句的過程,理解幾種基本算法語句”.中學階段,要讓學生能夠感受到,算法是指完成一個任務準確而完整的描述,算法是確定計算過程,從可變的初始數據導出所要求的答案的準確指令.中學數學中介紹了算法的基本邏輯結構:順序結構、條件結構和循環結構,理論上任何復雜的算法都可以用這三種基本邏輯結構來實現.中學數學還介紹了算法的主要描述方法:自然語言、程序框圖和程序語句,其中程序框圖使學生認識算法步驟式更直觀和更準確.三種基本邏輯結構與程序框圖是學習算法的重點.
1.2 中學數學中的算法思想
《新課標》中指出“算法是高中數學課程中新內容,其思想是非常重要的,但并不神秘”,其實在小學數學中,就出現了加法算法、減法算法,以及求最大公約數等等這樣一些簡單的算法.在中學數學中設置算法的學習,其目的除了要求中學生進一步學習必要的算法知識外,更重要的目的是讓學生理解和提煉算法思想.《新課標》明確提出“本模塊的主要目的是使學生體會算法的思想,提高邏輯思維能力.不要將此部分內容簡單處理成程序語言的學習和程序設計”,因此要抓住“算法思想”這條主線,重點培養學生利用算法來解決問題的思想意識.
算法思想雖然沒有一個明確的定義,但是在中學數學中,我們可以認為算法思想就是指把某些或某類數學問題的解題步驟或解題過程“程序化”、“機械化”的思想方法,也就是解題的每一個步驟是“明確”的,整個解題過程是“通用”的,甚至是“機械”的.比如:
例1:解一元二次方程ax2+bx+c=0(a≠0)時,我們的解題過程可以設置為如下“程序”:
當然,理解好中學數學中的算法思想,首先要理解數學“機械化”的重要意義,吳文俊強調“數學機械化方法的應用,是數學機械化研究的生命線”.以算法為核心的“機械化”思想,體現了數學的通用化、機械化和程序化思想,可以化難為易,化繁為簡,為各類實際問題的解決提供框架.在當今信息時代,腦力勞動的機械化已經成為提高生產力水平的重要手段.其次必須理解算法思想的基本特征:一是解題步驟的確定性,每一步驟的描述必須是確定的,不能產生歧義;二是解題步驟的有窮性,問題必須在有限的步驟內解決完成,過于繁多的步驟沒有實際意義;三是解題步驟的可行性,每一個解題步驟要確保能夠操作;四是解題結果的完成性,嚴格執行解題步驟,最后確保有結果輸出.
2.將算法思想滲透在中學數學中
在中學數學課程中,許多數學問題都蘊含了豐富的算法思想.《新課標》明確提出“算法除作為本模塊的內容之外,其思想方法應滲透在高中數學課程其他有關內容中,鼓勵學生盡可能地運用算法解決相關問題”.可見,注重算法思想與中學數學課程的整合,將算法思想滲透在中學數學課程中,鼓勵學生運用算法思想解決相關問題,是中學教師和學生應該積極探索的一個課題.
2.1 在數學基本概念和公式的學習中滲透算法思想
公式是指用數學符號表示各個量之間的一定關系(如定律或定理)的式子,在中學數學教材上明確給出了許多數學公式,比如數列求和公式、排列組合公式、三角公式、距離公式、夾角公式、面積和體積公式、求期望和方差的公式以及直線位置關系的判斷公式等等.數學公式本身就是一種算法,輸入已知量,由公式能夠直接而迅速的得到待求的量.除此以外,某些數學概念定理也可以發掘出算法思想.以一個周期函數求函數值為例:
例2:已知函數f(x)在R上是偶函數,且其周期為2,當x∈[1,2]時,f(x)=2-x,則ゝ(-2003.5)的值為().
A.0.5 B.1 C.-1 D.-1.5
分析:本題可以將問題的解決設計為算法過程:
從上可以看出,我們用到了循環累加x=x+2和累減x=x-2,也許看起來這種累加或累減顯得過于麻煩,但是它形象地刻畫了周期函數,并且這種重復單調的事對計算機來說顯得簡單.我們用算法的思想去認識數學中的概念和公式,除了一方面在數學基本概念和公式的學習中,適時滲透算法思想,另一方面還應該用算法思想去認識數學中的許多公式、定理和概念.
2.2 在典型案例的解法中滲透算法思想
中學數學中有許多具有典型性和實用性算法案例,比如《算法》這一章所列舉的二元一次方程組的解法、二分法求方程的近似解、階乘以及數列求和等等都是生動有趣的算法例子.在中學數學的學習中,我們要細心的去發現和利用好這樣一些案例,并以此為生動的載體,幫助學生進一步理解算法的本質,體會算法思想.比如蒙特卡羅方法的使用.
例3:天氣預報說,在今后的三天中,每一天下雨的概率均為40%,這三天中恰有兩天下雨的概率是多少?
分析:這是一個概率問題,如果運用蒙特卡羅(玀onte Carlo)方法,即計算機隨機模擬方法來解決這個問題,其算法可以設計為:設共做n次獨立試驗,被模擬的事件發生了m次.
用蒙特卡羅方法(即計算機隨機模擬方法)來解決實際問題,是信息技術與數學方法服務生產實踐的一個典型方法.上述算法給出了用計算機隨機模擬方法來解決實際問題的一般過程,有普遍的代表性.
2.3 在同類問題解題策略中滲透算法思想
中學數學中有許多問題在解決思路和方法上具有很強的共性,并且其解題過程的“步驟性”也很明顯.我們可以將這些問題歸類,將解題過程有“條理性”的表達出來,設計通用的“算法”,整個“算法”過程的設計要按照一定的步驟、一定的思維方式進行.當遇到同類問題時能夠立刻套用,提高問題解決速度,同時可以通過這種“算法”的設計和掌握來培養學生做事的條理性和規范性.
例4 (07年全國高考文科試題)設函數f(x)=2x3+3ax2+3bx+8c在x=1及x=2 時取得極值.
(1)求a、b的值;
(2)若對于任意的x∈[0,3],都有f(x) 分析:用導數法討論三次函數的性質,是高中數學中常見的題型,其解法“步驟性”很強,可以將算法歸納如下: 這里特別要注意的是要搞清解法與算法的聯系和區別:算法與解法都是解決數學問題的程序和步驟,但是算法是針對某一類問題,而解法是針對某一個問題,算法較解法具有更強的代表性和普遍性.算法以解法為基礎,在其基礎上歸納出解決某一類問題的程序或步驟. 算法思想在中學數學中的滲透,還可以通過解決實際問題、閱讀數學文獻以及通過與信息技術的整合等等方法來實現和加強.算法對中學數學來說是初次引入,如何把握知識的標 高,特別是如何在整個中學數學的教學中和知識體系中滲透算法思想,對廣大數學教育工作者來說,還需要作進一步的深入探索. 參考文獻 [1]中華人民共和國教育部.普通高中數學課程標準(實驗稿)[M].北京:北京師范大學出版社.2003,6. 注:“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。”