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| 97人妻精品专区久久久久| 免费看a毛片| 亚洲日韩精品综合在线一区二区| 亚洲欧美激情小说另类| 无码内射在线| 欧美成人在线免费| 国产99精品视频| 国产一级小视频| 无码一区二区波多野结衣播放搜索| 久久国产黑丝袜视频| 四虎影视库国产精品一区| 亚洲天堂网在线视频| 99国产在线视频| 精品国产乱码久久久久久一区二区| 中文国产成人精品久久| 亚洲成aⅴ人在线观看| 欧美色视频网站| 欧洲一区二区三区无码| 国产精品19p| 国产清纯在线一区二区WWW| 伊人精品视频免费在线| 国产99在线观看| 欧美高清三区| 久久伊人色| 亚洲人成网7777777国产| 久久人人97超碰人人澡爱香蕉| 国产精品久久久久婷婷五月| 在线毛片网站| 97在线碰| 亚洲三级网站| 亚洲高清中文字幕| 2020精品极品国产色在线观看| 日本a级免费| 色婷婷色丁香| 四虎AV麻豆| 理论片一区| 2020最新国产精品视频| 国产精品亚洲精品爽爽| 成人av手机在线观看| 亚洲一区二区三区国产精品 | 波多野结衣亚洲一区| 亚洲中文字幕精品| 精品国产成人高清在线| 亚洲精品少妇熟女| 国产网站一区二区三区| 91麻豆精品国产高清在线 | 日韩国产另类| 无码'专区第一页| 久久9966精品国产免费| 精品国产香蕉在线播出| 亚洲色图在线观看| 日本在线国产| 欧美精品亚洲二区| 亚洲精品777| 国产精品青青| 亚洲人在线| 99re视频在线| 国产区免费| 国产美女丝袜高潮| 精品国产香蕉伊思人在线| 久久免费观看视频| 久久精品嫩草研究院| 国产亚洲日韩av在线| 毛片网站在线看| 亚洲AV永久无码精品古装片| 欧美一区二区三区香蕉视| 免费不卡视频| 日韩a在线观看免费观看| 99re热精品视频国产免费| 真实国产乱子伦视频 | 欧美精品伊人久久| 日韩第九页| 2020国产精品视频| 欧美不卡视频一区发布| 亚洲无码视频一区二区三区| 综合久久五月天| 久久青草视频| 午夜爽爽视频| 国产黄色免费看| 91综合色区亚洲熟妇p|