亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        “五家共井”問題的圖形化、Python和APPInventor解法

        2021-09-27 18:53:45王德貴
        電腦報 2021年37期
        關(guān)鍵詞:枚舉法井繩枚舉

        王德貴

        中國古代數(shù)學(xué)巨著《九章算術(shù)》是張蒼、耿壽昌所撰寫的一部數(shù)學(xué)專著。其內(nèi)容十分豐富,總結(jié)了戰(zhàn)國、秦、漢時期的數(shù)學(xué)成就。是當(dāng)時世界上最簡練有效的應(yīng)用數(shù)學(xué),它的出現(xiàn)標(biāo)志著中國古代數(shù)學(xué)形成了完整的體系。其中有一道題是“五家共井”問題,原文如下:

        五家共井,甲二綆不足,如乙一綆;乙三綆不足,如丙一綆;丙四綆不足,如丁一綆;丁五綆不足,如戊一綆;戊六綆不足,如甲一綆,皆及。

        這道題的白話解釋是:五家合用一口井,甲家的2根井繩和乙家1根井繩總長為井深;乙家的3根井繩和丙家的1根井繩總長為井深;丙家的4根井繩和丁家1根井繩總長為井深;丁家的5根井繩和戊家1根井繩總長為井深;戊家的6根井繩和甲家1根井繩總長為井深。問:井深、各家井繩各多少?(每家的井繩均等長)

        下面我們也來分析一下“五家共井”問題,并用Python、圖形化和APPInventor分別求解。

        一、創(chuàng)意來源

        在教授學(xué)生學(xué)習(xí)Python四級課程時,合用的練習(xí)和案例并不多,于是在搜索案例過程中,看到了這個“五家共井”問題,經(jīng)過研究發(fā)現(xiàn)比較適合用Python四級的知識點(diǎn)來解決,現(xiàn)分享出來。

        二、設(shè)計思路

        這是一個不定方程問題。遇到方程最初的想法還是用枚舉法,在100范圍內(nèi)運(yùn)行后,無果。說明最小正整數(shù)解,一定比100大,于是擴(kuò)大范圍到300,結(jié)果運(yùn)行很久也沒有輸出結(jié)果,看來運(yùn)算時間過長了,沒有能等到程序運(yùn)行出結(jié)果。

        于是想到庫函數(shù)sympy,它是一個符號計算的Python庫。我在文章《阿基米德群牛問題的分析及Python驗(yàn)證》里講過,這里不再贅述。

        通過解方程,得到關(guān)系式,從而求出最小正整數(shù)解。

        在使用Python求解過程中,想試著再用Scratch和APPInventor求解,通過編程,運(yùn)行,在對比三種代碼之后很有啟發(fā),下面把求解過程分享給大家。

        三、程序設(shè)計

        (一)Python程序設(shè)計

        1.枚舉法

        這是一種最直接的思路,不知道具體結(jié)果,那就用枚舉法測試(圖1)。根據(jù)題意,設(shè)甲、乙、丙、丁、戊五根繩子分別長a、b、c、d、e,井深2a+b,5個未知數(shù)的滿足方程2a+b=3b+c=4c+d=5d+e=6e+a,將1到100分別代入進(jìn)行試算。

        由于運(yùn)行時間較長,運(yùn)行時將消耗時間打印出來了,此時顯示的是運(yùn)行了a取值1到10的運(yùn)行時間222秒(圖2)。

        2.時間復(fù)雜度

        如果取值范圍在100以內(nèi),則時間復(fù)雜度是10的10次方,按運(yùn)行時間算,運(yùn)行了10個a將近4分鐘,那運(yùn)行100個a,需要的時間就大約是40分鐘(圖3)。

        當(dāng)a的取值在300以內(nèi)時,運(yùn)行1個a需要的時間將近30分鐘,那300個a就是近150個小時,需要6天多的時間(圖4)。

        這樣長的運(yùn)行時間程序完全無法實(shí)用,必須通過縮減無效運(yùn)算來優(yōu)化程序。改為將最短的繩子e作為枚舉的主要參數(shù),根據(jù)題目分析我們也能提前知道各未知數(shù)的大小關(guān)系,將d的試算起始數(shù)量從1改為從e開始,其他幾個未知數(shù)以此類推。根據(jù)網(wǎng)絡(luò)搜索答案,我已經(jīng)知道e的最小正整數(shù)解小于100,b小于300。新增了變量bj=1用來判斷,當(dāng)獲得答案后立刻跳出循環(huán)。等待一段時間能夠獲得答案(圖5)。

        運(yùn)行10個e的時間將近是6分鐘,隨e值增大,單次運(yùn)算時間還會縮短。優(yōu)化后,運(yùn)行時間大大縮短了,只需25分鐘左右,已經(jīng)獲得了一組結(jié)果(圖6)。

        我們根據(jù)已有答案回推優(yōu)化程序,最終獲得了結(jié)果。但是如果我們不知道答案的范圍,即使只在300范圍內(nèi)試算,運(yùn)行也要6個小時左右。枚舉法在面對這樣一個不定方程的情況時,如果不知道結(jié)果的范圍,那么運(yùn)行時間就會非常長!必須去尋找更簡捷的算法。

        3.方程解法的程序設(shè)計

        (1)利用sympy庫函數(shù)先求出不定方程的關(guān)系式(圖7)。

        猜你喜歡
        枚舉法井繩枚舉
        基于理解性教學(xué)的信息技術(shù)教學(xué)案例研究
        速讀·上旬(2022年2期)2022-04-10 16:42:14
        一種高效的概率圖上Top-K極大團(tuán)枚舉算法
        枚舉法的程序?qū)崿F(xiàn)及優(yōu)化
        應(yīng)重視用枚舉法解題
        井繩
        基于太陽影子定位枚舉法模型的研究
        意林(2014年16期)2014-09-11 17:35:53
        讀者(2014年18期)2014-05-14 11:40:56
        USB開發(fā)中易混淆的概念剖析
        對改進(jìn)隱枚舉法的思考
        无码国产69精品久久久孕妇| 天堂av一区二区麻豆| 在线免费观看毛视频亚洲精品| 成 人 网 站 在线 看 免费| 91精品亚洲一区二区三区| 一区二区三区观看在线视频| 久久精品国产亚洲av一般男女| 日韩乱码中文字幕在线| 亚洲va欧美va日韩va成人网| 男人女人做爽爽18禁网站| 亚洲av日韩av在线观看| 国产精品9999久久久久| 欧美午夜精品久久久久免费视| 国产成人亚洲精品77| 久久精品国产视频在热| 国产乱人伦偷精品视频还看的| 国产三a级三级日产三级野外| 狠狠噜狠狠狠狠丁香五月| 国产特级毛片aaaaaa高清| 久久国产精品不只是精品| 蜜芽尤物原创AV在线播放| 亚洲av色精品国产一区二区三区| 最新日本人妻中文字幕| 久久人妻av一区二区软件| 亚洲综合久久精品无码色欲| 日韩激情无码免费毛片 | 好紧好爽免费午夜视频| 亚洲精品成人网线在线播放va| 日本一区午夜艳熟免费| 日韩精品网| 在线观看国产av一区二区| 白浆国产精品一区二区| 色欲aⅴ亚洲情无码av| 欧美丰满大屁股ass| 视频国产精品| 亚洲精品456在线播放狼人| 婷婷精品国产亚洲av麻豆不片| 色妞ww精品视频7777| 欧美性猛交xxxx黑人| 丰满熟妇人妻av无码区| 青青草手机在线免费视频|