1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        新教材習(xí)題解析之python循環(huán)結(jié)構(gòu)

        共 2631字,需瀏覽 6分鐘

         ·

        2021-06-22 06:04

        說(shuō)在前面

        下學(xué)期開(kāi)始,絕大多數(shù)學(xué)校就要開(kāi)始上新教材內(nèi)容了,必修一《數(shù)據(jù)與計(jì)算》的主要內(nèi)容是Python語(yǔ)言學(xué)習(xí)。新教材的理念是編程教學(xué)不應(yīng)該只教語(yǔ)法,更重要的是教學(xué)生如何解決問(wèn)題,如何使用計(jì)算機(jī)編程解決實(shí)際問(wèn)題。所以命題的思路不應(yīng)該是摳語(yǔ)法,應(yīng)盡量避免考查語(yǔ)法細(xì)節(jié),要把重點(diǎn)放在數(shù)學(xué)建模和解決問(wèn)題上面。

        受《新時(shí)代領(lǐng)航技術(shù)同步用書(shū)》編委會(huì)的邀請(qǐng),我也嘗試著編制了一些題目,盡可能按照新課標(biāo)的要求,力求能夠激發(fā)學(xué)生思考和考查學(xué)生的計(jì)算思維。今天主要和大家分享2道關(guān)于Python循環(huán)結(jié)構(gòu)的開(kāi)放性題目。

        由于新教材是塊新大陸,我們都是在摸索前行,加之本人水平有限,在描述題目用語(yǔ)和控制題目難度方面都存在不足,敬請(qǐng)大家批評(píng)指正。



        4.(開(kāi)放題)計(jì)算S = 1/4 + 1/16 + 1/64+ 1/256 + …的值。

        1)這道題目是求無(wú)窮級(jí)數(shù)的和,其各項(xiàng)的變化規(guī)律是什么?

        2)設(shè)計(jì)算法要遵循有窮性原則,在本題中不能讓程序永遠(yuǎn)執(zhí)行下去,你打算如何設(shè)計(jì)算法以避免出現(xiàn)死循環(huán)?

        3)請(qǐng)編寫(xiě)程序?qū)崿F(xiàn)你設(shè)計(jì)的算法,并添加必要的注釋。

        (4)除了編程計(jì)算S的值,你是否還能想到其他的巧妙方法?



        解析:(1各項(xiàng)的變化規(guī)律是:第n項(xiàng)的值為4n次冪的倒數(shù)。

        2)我們可以發(fā)現(xiàn)當(dāng)n越大時(shí),該項(xiàng)對(duì)S的影響越小。故可以通過(guò)設(shè)置n的值來(lái)控制循環(huán)的次數(shù),或者比較相鄰的兩項(xiàng)的值,當(dāng)它們的差值小于某個(gè)數(shù)時(shí),說(shuō)明S的精確度已經(jīng)很高了,可以退出循環(huán)。

        3)算法1:我們可以發(fā)現(xiàn),當(dāng)n=30時(shí),1/4^30的數(shù)量級(jí)為10^(-19),這是一個(gè)非常小的數(shù)了,所以我們可以讓循環(huán)執(zhí)行30次,就可以得到S較為精確的值。參考代碼如下:

        s = 0

        #計(jì)算前30項(xiàng),即可獲得較為精確的S

        for i in range(1, 31):

            s += 1 / 4 **i  #s += 4 ** -i

        print(s)

        算法2:我們可以規(guī)定當(dāng)相鄰兩項(xiàng)的差小于10^(-20)時(shí)退出循環(huán),這樣也能獲得精確度已經(jīng)很高的S值。參考代碼如下:

        s = 0

        d = 10 ** -20 #最小差值

        a, b = 1/4, 1/16#前兩項(xiàng)

        #當(dāng)相鄰兩項(xiàng)的差小于d時(shí)退出循環(huán)

        while a - b >= d:

            s += a

            a, b = b, b / 4

        print(s)

                 4)除了編程計(jì)算S的值,我們還可以使用等比數(shù)列求和公式來(lái)計(jì)算S的值。因?yàn)榈缺葦?shù)列的公比q=1/4,故當(dāng)n值很大時(shí)q^n約等于0,故可以將求和公式簡(jiǎn)寫(xiě)為S=a1/(1-q),代入數(shù)據(jù)得到S=1/3

                 還可以使用作圖法來(lái)解決本題。如下圖所示,畫(huà)一個(gè)平分為4份的正方形,將正方形的右上角的1/4部分再次劃分為4份,以此類推。可知每個(gè)黑色的小正方形面積剛好依次為1/4,1/16,1/64。而黑色部分面積剛好是總面積的1/3,故S=1/3。


        拓展思考:

        11.(開(kāi)放題)“海龜作圖”是一款神奇的軟件,只需簡(jiǎn)單的幾行代碼,就可以畫(huà)出各種復(fù)雜的圖形,有時(shí)候只要更改一下畫(huà)筆轉(zhuǎn)折的角度,就能做出各種不同的漂亮圖形。在下面的程序中,我們用變量angle存儲(chǔ)畫(huà)筆轉(zhuǎn)折的角度,以下就是角度angle分別為90,120144時(shí)作出的圖形。


        你知道如此美妙的圖案是如何畫(huà)出來(lái)的嗎?

        下面的代碼能夠?qū)崿F(xiàn)上述功能,請(qǐng)仔細(xì)閱讀代碼,回答以下問(wèn)題,并思考能否修改參數(shù)angle或者修改代碼,畫(huà)出更多漂亮的圖形。

        1)變量w中存儲(chǔ)的值用來(lái)表示什么?若將其初值設(shè)置成50,圖像有何變化?

        2)內(nèi)層循環(huán)變量j可以取到哪些值?若將語(yǔ)句for j in range(6)改成for j in range(10)會(huì)對(duì)程序產(chǎn)生什么影響?

        3)內(nèi)層循環(huán)中語(yǔ)句w = w+ 2的作用是什么?若將其改成w = w + 10,圖像會(huì)有何變化?

        4)修改參數(shù)angle的值分別為60150180,觀察生成的圖像,你能想象出angle=180時(shí)的圖像是什么樣子的嗎?

              import turtle as tt

        tt.TurtleScreen._RUNNING = True # 啟動(dòng)繪圖,在IDE中運(yùn)行加這句可避免報(bào)錯(cuò)

        c = [(18,242,13), (255,0,0), (136,209,46), (132,104,22),(0,200,200), (243,236,86)]

        tt.ht()

        tt.speed(0)

        tt.colormode(255)

        w = 5  #

        angle = 144

        tt.pensize(2)

        for i in range(20): 

            for j in range(6):  #

                tt.pencolor(c[j])#設(shè)置不同顏色

                tt.fd(w)

                tt.rt(angle)

                w = w + 2 #

        tt.done()


        需要本文word版和拓展思考答案的,可以加入“Python算法之旅”知識(shí)星球參與討論和下載文件,Python算法之旅”知識(shí)星球匯集了數(shù)量眾多的同好,更多有趣的話題在這里討論,更多有用的資料在這里分享。

        我們專注Python算法,感興趣就一起來(lái)!

        相關(guān)優(yōu)秀文章:

        閱讀代碼和寫(xiě)更好的代碼

        最有效的學(xué)習(xí)方式

        函數(shù)與模塊典型例題

        字符串專題之中文大寫(xiě)金額數(shù)字轉(zhuǎn)換工具

        瀏覽 120
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            啊啊啊快高潮了口述网站 | 极品尤物白丝拘束h | 国产免费拔擦拔擦8x在线牛 | 国产国语亲子伦亲子 | 中文字幕无码AV | 岳的丰满奶罩bd 丰满女邻居做爰全黄 | 中国女人性爱视频 | 美女被人操网站 | 一级少妇免费 | 性裸交AAAA片免费看中国影院 |