• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      高中程序設(shè)計(jì)中的算法優(yōu)化

      2019-02-15 08:38:48凌忠寶
      考試周刊 2019年14期
      關(guān)鍵詞:計(jì)算思維

      摘 要:信息學(xué)奧賽以培養(yǎng)學(xué)生的學(xué)習(xí)興趣為主,讓學(xué)生的核心素養(yǎng)得以提高。本文通過“百錢買百雞”問題的教學(xué)設(shè)計(jì)案例分析,在學(xué)生已有的數(shù)學(xué)知識(shí)的基礎(chǔ)之上,逐步引導(dǎo)學(xué)生進(jìn)行算法優(yōu)化,有效提高學(xué)生的計(jì)算思維這一核心素養(yǎng),培養(yǎng)他們發(fā)現(xiàn)問題、分析問題和解決問題的能力。

      關(guān)鍵詞:百錢買百雞;計(jì)算思維;時(shí)間復(fù)雜度;算法優(yōu)化

      筆者從事高中信息學(xué)奧賽多年,有一點(diǎn)感觸——開始學(xué)習(xí)這門課的學(xué)生和動(dòng)力都很大(因?yàn)橛X得很好玩,也很簡單)沒有涉及算法,就是簡單輸入輸出和一些簡單的語法,學(xué)生可以很輕松地解決一個(gè)問題,很有成就感。但是自從接觸了循環(huán)之后,有些學(xué)生已經(jīng)堅(jiān)持不了了,我仔細(xì)分析了原因:①學(xué)生缺少興趣;②學(xué)生沒有學(xué)習(xí)算法的主動(dòng)性;③學(xué)生對算法設(shè)計(jì)比較厭煩(覺得很枯燥,就是部分學(xué)生說的有的算法很燒腦);④學(xué)生的數(shù)學(xué)知識(shí)可能與程序設(shè)計(jì)的要求不一致(數(shù)學(xué)知識(shí)要滯后);⑤很有可能是我們的教法過于簡單陳舊。所以我們今后要做好這項(xiàng)工作就必須根據(jù)具體的情況制定出可行的措施對學(xué)生進(jìn)行施教。為該課程打下較好興趣基礎(chǔ)。

      “百錢買百雞”是一個(gè)古老的問題,具體解決的方法可以根據(jù)學(xué)生自己在初中學(xué)到的知識(shí)完成程序設(shè)計(jì),然后可以在程序運(yùn)行的時(shí)間復(fù)雜度上提出相應(yīng)的要求,讓學(xué)生不斷地修改程序來進(jìn)行算法的優(yōu)化,最終達(dá)到從1000000次運(yùn)算優(yōu)化到4次運(yùn)算。在這個(gè)過程中老師要不斷地加以引導(dǎo),還要不時(shí)地與學(xué)生進(jìn)行交流,找到學(xué)生理解困難的地方,并及時(shí)加以講解,一步一步地讓學(xué)生進(jìn)入自己所預(yù)設(shè)的操作當(dāng)中。要對我們預(yù)設(shè)的效果進(jìn)行合理合法的算法設(shè)計(jì)與分析,讓學(xué)生不斷地了解優(yōu)化算法的重要性(為什么我們同樣的程序雖然大家都可以得出正確的答案,但是有的同學(xué)寫的程序運(yùn)行效率很高,有些同學(xué)編寫的程序運(yùn)行時(shí)間很長),從而進(jìn)一步激發(fā)學(xué)生學(xué)習(xí)這門課的興趣。為信息學(xué)奧賽打下良好的基礎(chǔ)。

      百錢買百雞的問題描述:公元前五世紀(jì),我國古代數(shù)學(xué)家張丘建在《算經(jīng)》一書中提出了“百雞問題”:雞翁一值錢五,雞母一值錢三,雞雛三值錢一。百錢買百雞,問雞翁、雞母、雞雛各幾何?翻譯為現(xiàn)代漢語的意思是:一只公雞賣5文錢,一只母雞賣3文錢,三只小雞賣1文錢,問100文錢

      買100只雞,可以買多少只公雞?多少只母雞?多少只小雞?

      教師在引導(dǎo)學(xué)生理解了題目意思之后,可以讓學(xué)生獨(dú)立完成程序設(shè)計(jì),學(xué)生的一般寫法一般都會(huì)用到三重循環(huán)和二重循環(huán)。當(dāng)然他們幾乎都沒有對程序算法進(jìn)行優(yōu)化或者說進(jìn)行了簡單的、粗暴的優(yōu)化。三重循環(huán)就沒有優(yōu)化,就是用暴力的循環(huán)完成。公雞、母雞和小雞都是從0到100之間,讓計(jì)算機(jī)用窮舉法列出符合的結(jié)果。簡單的初步優(yōu)化可以考慮100文全買公雞應(yīng)該是20,全買母雞應(yīng)該是34,最多買100只小雞。這樣對公雞、母雞和小雞進(jìn)行了初步的模糊范圍進(jìn)行修改優(yōu)化。三重循環(huán)的偽代碼如下:

      //算法1 三重循環(huán)不優(yōu)化

      Void bqmbj1( )

      { int x,y,z; //x公雞數(shù)y母雞數(shù)z小雞數(shù)

      For(x=0;x<=100;x++)

      For(y=0;y<=100;y++)

      For(z=0;z<=100;z++)

      If(x+y+z==100&&5*x+3*y+z/3==100&&z;%3==0)

      Cout<

      }

      //算法2 三重循環(huán)初步優(yōu)化

      Void bqmbj2( )

      { int x,y,z; //x公雞數(shù)y母雞數(shù)z小雞數(shù)

      For(x=0;x<=20;x++)

      For(y=0;y<=34;y++)

      For(z=0;z<=100;z++)

      If(x+y+z==100&&5*x+3*y+z/3==100&& z%3==0)

      Cout<

      }

      在三重循環(huán)基礎(chǔ)之上我們進(jìn)一步分析三個(gè)變量之間的關(guān)系,第三個(gè)變量只要通過前面的兩個(gè)變量就可以得出,即z=100-x-y;由于減少了變量的個(gè)數(shù),所以我們可以寫出下面兩個(gè)算法,算法3就是不優(yōu)化的二重循環(huán),而算法4就是考慮了公雞最多買20只,母雞最多34只。二重循環(huán)的偽代碼如下:

      //算法3 二重循環(huán)不優(yōu)化

      Void bqmbj3( )

      { intx,y,z; //x公雞數(shù)y母雞數(shù)z小雞數(shù)

      For(x=0;x<=100;x++)

      For(y=0;y<=100;y++){

      z=100-x-y;

      If(x+y+z==100&&5*x+3*y+z/3==100&&z;%3==0)

      Cout<

      }

      //算法4 二重循環(huán)初步優(yōu)化

      Void bqmbj3( )

      { int x,y,z; //x公雞數(shù)y母雞數(shù)z小雞數(shù)

      For(x=0;x<=20;x++)

      For(y=0;y<=34;y++){

      z=100-x-y;

      If(x+y+z==100&&5*x+3*y+z/3==100&& z%3==0)

      Cout<

      }

      從上面列舉的四個(gè)算法,雖然偽代碼差不多,但是優(yōu)化之后的程序在時(shí)間復(fù)雜度上有了質(zhì)的變化。

      我們看IF語句的執(zhí)行頻度,運(yùn)算量1030301次降到714次,體會(huì)到算法優(yōu)化的優(yōu)越性,也就告誡我們既要能算法設(shè)計(jì),也要有算法優(yōu)化的理念。盡可能寫出最優(yōu)的算法。

      對這個(gè)程序我們還可以進(jìn)一步進(jìn)行優(yōu)化,最終實(shí)現(xiàn)一重循環(huán)。我們在施教程序優(yōu)化的過程中要注意循序漸進(jìn),一步一步把學(xué)生引入最優(yōu)算法。當(dāng)然這里必須要以學(xué)生的數(shù)學(xué)知識(shí)作為基礎(chǔ)。否則算法優(yōu)化只能說一個(gè)空中樓閣。大家在平時(shí)的施教中灌輸算法優(yōu)化的思想,加強(qiáng)計(jì)算思維的訓(xùn)練,為學(xué)生的終身發(fā)展奠定必要的基礎(chǔ)。

      參考文獻(xiàn):

      [1]胡峰,王國胤.算法分析與設(shè)計(jì)[J].當(dāng)代教育理論與實(shí)踐,2011(12):72-74.

      [2]鄧春燕,張長海等.如何有效培養(yǎng)和提高高級語言程序設(shè)計(jì)學(xué)習(xí)興趣[J].計(jì)算機(jī)教育,2011(8).

      作者簡介:凌忠寶,江蘇省泰州市,泰州市姜堰區(qū)張甸中學(xué)。

      猜你喜歡
      計(jì)算思維
      適合高中生計(jì)算思維能力培養(yǎng)的程序設(shè)計(jì)語言初探
      高中信息技術(shù)課堂中計(jì)算思維能力培養(yǎng)問題的探討
      基于計(jì)算思維視角的計(jì)算機(jī)基礎(chǔ)課程改革
      商情(2016年39期)2016-11-21 09:41:50
      公安專業(yè)學(xué)生計(jì)算思維能力培養(yǎng)對策初探
      基于計(jì)算思維的多媒體技術(shù)及應(yīng)用課程教學(xué)模式研究
      信管專業(yè)計(jì)算機(jī)科學(xué)概論課程的教學(xué)改革實(shí)踐
      基于計(jì)算思維的軟件類研究生高級算法課程教學(xué)研究
      基于計(jì)算思維程序設(shè)計(jì)的軍事案例研究
      程序設(shè)計(jì)課程中計(jì)算思維和應(yīng)用能力培養(yǎng)問題研究
      民族高校C語言程序設(shè)計(jì)課程教學(xué)改革的研究
      軟件工程(2016年8期)2016-10-25 16:03:32
      潮安县| 锦州市| 清新县| 崇义县| 霍山县| 余庆县| 博湖县| 宁城县| 白城市| 济阳县| 梧州市| 佳木斯市| 冷水江市| 赤城县| 顺昌县| 东安县| 土默特右旗| 海口市| 化州市| 昌邑市| 白城市| 翼城县| 密山市| 柳河县| 牡丹江市| 千阳县| 三穗县| 绥芬河市| 礼泉县| 逊克县| 芦山县| 三台县| 光山县| 晋宁县| 烟台市| 朝阳区| 旺苍县| 克拉玛依市| 商丘市| 霍州市| 虞城县|