999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一個增強算法學習興趣的算法實驗設計

2017-04-20 08:26:25董世都劉智張宜浩朱常鵬
教育教學論壇 2017年16期
關鍵詞:計算機實驗學生

董世都++劉智++張宜浩++朱常鵬

摘要:算法是計算機科學領域最重要的基石之一,但卻受到了國內高校相關專業及學生的冷落。他們認為學習計算機就是學習各種編程語言,對算法學習沒有興趣。但是算法的學習更加重要,因為計算機語言和開發平臺日新月異,但萬變不離其宗的是那些算法。本文論述一個增強學生算法學習興趣的算法實驗設計方法。讓學生在實驗中體驗算法學習的重要性,通過實驗發現問題,分析問題出現的原因,尋找解決問題的辦法,從而將原來的被動學習轉化為主動學習。

關鍵字:算法;實驗設計;動態規劃

中圖分類號:G642.4 文獻標志碼:A 文章編號:1674-9324(2017)16-0215-02

一、引言

算法是計算機科學領域的最重要的基石之一,但在國內卻受到了高校及學生的冷落[1]。許多公司招聘往往要求Java,C#及C++等相關語言及相關平臺。因而許多學生認為,學習計算機就是學習各種編程語言及相關平臺,對算法的學習不感興趣。計算機語言和開發平臺日新月異,PowerBuilder,Visual Basic,Dephi及Visual Foxpro都曾經很流行,但現在使用的人很少。現在流行的是Java,C#,C++等語言,十幾年后他們是否還流行?實際上,不管編程語言及相關平臺如何變化,萬變不離其宗的是算法。許多計算機領域的創新實質是算法的創新。真正學懂計算機的人,不只是“編程匠”,他們既能用科學家的嚴謹思維來求證,也能用工程師的務實手段來解決問題——而這種思維和手段的最佳演繹就是“算法”[1]。因而,有人地把算法等基本課程比擬為“內功”,把語言、平臺及相關技術與標準比擬為“外功”。整天趕時髦的人最后只懂得招式,沒有功力,是不可能成為高手的[1]。

本文論述一種利用實驗增強學生算法學習興趣的方法。在實驗中,讓學生體驗算法學習的重要性,明白改進算法比升級計算機重要得多;讓學生通過實驗發現問題,分析問題出現的原因,尋找解決問題的辦法,從而將原來的被動學習轉化為主動學習[3]。

二、實驗設計

有的學生覺得算法不重要,因為他們平時編寫的程序都能在幾秒時間內完成,甚至認為他們現有的計算機足夠的快,根本就沒有改進算法的必要。因而第一實驗,我讓學生首先實現Fibonacci數列的遞歸算法(以及插入排序算法),并統計程序運行時間與問題的規模即n的關系(n~100)。其算法如算法1[2]:

算法1

過程 FibonacciRec(n)

1.if (n=1) or (n=2) then

2. return 1

3.else

4. return FibonacciRec(n-1)+FibonacciRec(n-2)

5.end if

學生們非常高興,覺得實驗足夠簡單,還給出了算法。他們很快就編寫好程序,并開始運行,剛開始程序運行很快,當n為42以下,基本能在1秒內完成。并觀察到,運行時間隨n增長很快。當n為60時需要1個多小時才能完成,圖1為學生統計的Fibnonacci運行時間與n之間的關系。由此可以推算當n為70時需要約3天的時間,n為80時需要計算約250天,n為90時,需要約203年才能完成。顯然,即使把你的計算機速度升級100倍對,當n>80時,也是不可接受的。

然后我讓學生編程實現Fibonacci的非遞歸算法,算法2[2,4]:

算法2

1.input n

2.FA[1]←1

3.FA[2]←1

4.for i←3 to n

5. FA[i]←FA[i-1]+FA[i-2]

6.end for

7.output FA[n]

//若n=1或n=2,則循環不執行。

學生發現,算法2執行速很快,當n=90時,在I3計算機運行只需要0.056秒的時間。然后我引導學生尋找為什么算法2運行速度快,而算法1運行速慢的原因。剛開始學生認為,算法1慢是因遞歸的原因。確實遞歸對程序速度有影響,但是影響不是太大。這是我讓學生對比遞歸與非遞歸的插入排序學生自己得出的結論。學生經過深入的分析發現,算法1中隱藏著大量的重復計算,例如求7的Fibonacci數(Fibonacci(7),以下Fibonacci函數簡稱F(7))需要求2次F(5),3次F(4),5次F(3),8次F(2)的計算,如圖2。因而算法1運行的速度較慢。然后讓學生分析算法的時間復雜度,設求F(n)所需的時間為T(n)。

根據算法1可得

T(n)= 1 n=1 or n=2T(n-1)+T(n-2) n>2 (1)

求解該遞歸方程可得T(n)=(■)n=1.61803n。由此可知算1是指數時間復雜度算法,算法運行的時間隨n增長非常快,當n為90時,需要幾百年的時間才求出他的解,這顯然是無法接受的。

而算法2采用自底向上的方式進行計算,并用數組FA把求得的解存儲起來,避免了重復計算,算法而的時間復雜度是線性的,為O(n),因而算法執行的速度很快。當n=90時在I3計算機上運行只需要0.056秒的時間。算法2是一種用空間換時間的動態規劃的設計方法,從算法1和算法2的比較中,學生體會了設計高效的算法比升級計算機重要得多。同時,該實驗也為動態規劃的引入做了鋪墊。

三、結論

本文用簡單的Fibonacci遞歸算法與非遞歸算法設計了一個算法實驗。通過該實驗,讓學生體驗了指數時間復雜度算法運行時間與數據規模的關系,讓學生明白,對于規模稍大的問題,指數時間復雜度算法是不可接受的;通過對比兩個算法,讓學生體驗了改進算法比升級計算機要重要得多,而算法設計策略是改進算法的關鍵;通過該實驗,學生對算法產生濃厚的興趣,從原來的被動學習轉變化了主動學習。

參考文獻:

[1]李開復.算法的力量[J].程序員,2006,(2).

[2]M.H.Alsuwaiyel.算法設計技巧與分析[M].電子工業出版社,2012.

[3]Alfieri,L.,Brooks,P. J.,Aldrich,N.J.,& Tenenbaum,H. R.. Does discovery-based instruction enhance learning?. Journal of Educational Psychology,2011,103(1).

[4]Thomas H.Cormen,Charles E.Leiserson,Ronald,L.Rivest,Clifford Stein,著.算法導論(原書第3版)[M].殷建平,徐云,王剛,等,譯.北京:機械工業出版社,2013.

猜你喜歡
計算機實驗學生
記一次有趣的實驗
計算機操作系統
基于計算機自然語言處理的機器翻譯技術應用與簡介
科技傳播(2019年22期)2020-01-14 03:06:34
做個怪怪長實驗
趕不走的學生
信息系統審計中計算機審計的應用
消費導刊(2017年20期)2018-01-03 06:26:40
學生寫話
NO與NO2相互轉化實驗的改進
實踐十號上的19項實驗
太空探索(2016年5期)2016-07-12 15:17:55
學生寫的話
主站蜘蛛池模板: 99精品热视频这里只有精品7| 国产成人精品一区二区| 伊人久久久久久久| 久久久噜噜噜| 性喷潮久久久久久久久| 欧美日韩国产系列在线观看| 成人免费视频一区| 美女免费黄网站| 久草网视频在线| 免费一级无码在线网站 | 国产成人在线无码免费视频| 国产精品黄色片| 成人国产三级在线播放| 国内a级毛片| 亚洲欧美成人综合| 亚洲伊人天堂| 在线精品亚洲国产| 97视频免费看| 91蜜芽尤物福利在线观看| 国产免费福利网站| 浮力影院国产第一页| 国产成+人+综合+亚洲欧美| 久久精品人妻中文系列| 亚洲无码A视频在线| 不卡无码h在线观看| 孕妇高潮太爽了在线观看免费| 日本亚洲国产一区二区三区| 日韩黄色精品| 婷婷亚洲视频| a亚洲天堂| 亚洲不卡无码av中文字幕| 久久综合五月婷婷| jizz在线免费播放| 色天天综合久久久久综合片| 国产激情无码一区二区三区免费| 国产午夜一级毛片| 午夜不卡视频| 毛片免费高清免费| 一本色道久久88综合日韩精品| 国产精品免费福利久久播放| 米奇精品一区二区三区| 久草中文网| 免费a级毛片18以上观看精品| www亚洲天堂| 日韩精品一区二区三区免费在线观看| 国内精自视频品线一二区| 亚洲精品日产精品乱码不卡| 亚洲欧美激情小说另类| A级全黄试看30分钟小视频| 伊人久综合| 婷婷六月在线| 国产一区二区精品福利| 精品成人一区二区| 在线看免费无码av天堂的| 午夜国产精品视频| 日韩免费毛片视频| 久久99国产视频| 免费一级毛片完整版在线看| 国产91成人| 久久久久久久蜜桃| 亚洲综合第一区| 97色婷婷成人综合在线观看| 亚洲成在人线av品善网好看| 熟女成人国产精品视频| www.精品视频| 亚洲天堂成人在线观看| 啊嗯不日本网站| 亚洲色欲色欲www在线观看| 国产成人夜色91| 国产凹凸一区在线观看视频| 国产激爽爽爽大片在线观看| 乱人伦99久久| 五月婷婷综合在线视频| 色哟哟精品无码网站在线播放视频| 女人爽到高潮免费视频大全| 99这里只有精品6| 91成人在线观看视频| 亚洲综合久久成人AV| 欧美人人干| 8090成人午夜精品| 亚瑟天堂久久一区二区影院| 青青草原国产|