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

        ?

        Python求解“雞兔同籠”升級(jí)版

        2020-01-13 09:46:29牟曉東
        電腦報(bào) 2020年46期
        關(guān)鍵詞:程序用戶

        牟曉東

        “雞兔同籠”趣題最早記載于1500多年前的中國(guó)古代數(shù)學(xué)著作《孫子算經(jīng)》中的“卷下”第31題(后傳至日本演變?yōu)椤苞Q龜算”),原題為:“今有雉兔同籠,上有三十五頭,下有九十四足,問(wèn)雉兔各幾何?”意思是“雞和兔的總頭數(shù)是35,總腳數(shù)是94,雞和兔各有幾只?”。

        1.問(wèn)題求解

        假設(shè)雞有x只,兔有y只,根據(jù)題意列方程為:

        x+y=35,2x+4y=94。

        求解,得:x=23,y=12;即雞有23只(46只腳)、兔有12只(48只腳)。

        2.Python編程求解

        如果使用Python語(yǔ)言來(lái)編寫(xiě)程序的話,可使用for循環(huán)、range()函數(shù)和if條件判斷來(lái)完成。先使用“heads = 35”和“feet = 94”兩個(gè)賦值語(yǔ)句,保存雞和兔的總頭數(shù)和總腳數(shù);接著使用range()函數(shù)進(jìn)行for循環(huán),讓雞的數(shù)目從1開(kāi)始計(jì)數(shù)加1循環(huán),循環(huán)體中的if條件為“2*x + 4*y == feet”,即“雞數(shù)目的兩倍加兔數(shù)目的四倍之和等于總腳數(shù)”,條件成立的話,使用print語(yǔ)句進(jìn)行最終雞兔數(shù)目的輸出。保存程序?yàn)椤半u兔同籠1.py”,運(yùn)行結(jié)果顯示為“雞有 23 只,兔有 12 只?!保ㄈ鐖D1)。

        3.升級(jí)版的“雞兔同籠”

        考慮到“雞兔同籠”原題中所給出的總頭數(shù)和總腳數(shù)是固定的35和94,因此最終的求解也是固定的“23只雞、12只兔”。如果將題目進(jìn)行“升級(jí)”,雞和兔的總頭數(shù)與總腳數(shù)均由用戶從鍵盤輸入,仍然來(lái)求雞和兔的數(shù)目,應(yīng)該如何編寫(xiě)程序代碼呢?

        首先使用標(biāo)準(zhǔn)輸入函數(shù)input來(lái)接收用戶從鍵盤上輸入的信息,比如“heads = input('請(qǐng)輸入雞和兔的總頭數(shù):')”和“feet = input('請(qǐng)輸入雞和兔的總腳數(shù):')”。但在此需要特別注意的是,Python的input函數(shù)接收到的輸入數(shù)據(jù)是str字符串(雖然表面上看是數(shù)字),必須要使用int來(lái)轉(zhuǎn)換成整數(shù)型才能進(jìn)行數(shù)學(xué)運(yùn)算,語(yǔ)句為“heads = int(heads)”和“feet = int(feet)”。

        接下來(lái)仍然是使用range()函數(shù)進(jìn)行for循環(huán):“for x in range(0,(heads+1))”。此時(shí)要充分考慮到用戶所輸入數(shù)據(jù)的計(jì)算結(jié)果,很有可能會(huì)出現(xiàn)“只有雞”或“只有兔”的情況。舉例:用戶輸入的總頭數(shù)是10、總腳數(shù)是20,運(yùn)算結(jié)果就應(yīng)該是“10只雞、0只兔”;或輸入總頭數(shù)是10、總腳數(shù)是40,運(yùn)算結(jié)果則是“0只雞、10只兔”。因?yàn)樵谟?jì)算機(jī)編程語(yǔ)言中,數(shù)字0總是被看作是最起始的值,Python的列表、字符串和元組等的元素均是從0開(kāi)始進(jìn)行索引的。不管是“0只雞”還是“0只兔”,在計(jì)算機(jī)看來(lái),這都是“雞兔同籠”,只不過(guò)數(shù)目是0而已。另外,由于range()函數(shù)的兩個(gè)參數(shù)是“左閉右開(kāi)”型的區(qū)間,即第一個(gè)參數(shù)是被計(jì)算在內(nèi),而第二個(gè)參數(shù)卻是不包括在內(nèi)的(只計(jì)算到它的前一個(gè)元素);所以,第二個(gè)參數(shù)應(yīng)該設(shè)置為“heads+1”,這樣就能在循環(huán)時(shí)計(jì)算到它的前一個(gè)元素(即“heads”),也就是“0只兔”的情況(“x=0”則是“0只雞”)(如圖2)。

        循環(huán)體與之前類似,仍然是if條件判斷“2*x + 4*y == feet”是否成立,成立的話則使用print輸出結(jié)果,然后使用break語(yǔ)句跳出循環(huán)。因?yàn)椴淮_定用戶從鍵盤上輸入的兩個(gè)數(shù)據(jù)是否恰好為“有效解”——雞和兔的數(shù)目必須是整數(shù)只,所以在循環(huán)體外應(yīng)該再添加一個(gè)“if 2*x + 4*y != feet”判斷語(yǔ)句,將這種無(wú)法進(jìn)行整數(shù)結(jié)果計(jì)算的情況進(jìn)行提示:“輸入的總頭數(shù)和總腳數(shù)不合法”。沒(méi)有該print語(yǔ)句的話,程序也能正常運(yùn)行,但對(duì)于這種“意外”沒(méi)有任何提示,程序缺少必要的友好性(如圖3)。

        最后將程序保存為“雞兔同籠2.py”,運(yùn)行幾次進(jìn)行測(cè)試,輸入的總頭數(shù)和總腳數(shù)包括原題目中的“35、94”、雞兔各為0只、“30、110”四種合法數(shù)值,程序均輸出了正確的計(jì)算結(jié)果;最后一個(gè)測(cè)試輸入“8、100”,結(jié)果就提示“輸入的總頭數(shù)和總腳數(shù)不合法”(如圖4)。

        猜你喜歡
        程序用戶
        試論我國(guó)未決羈押程序的立法完善
        失能的信仰——走向衰亡的民事訴訟程序
        “程序猿”的生活什么樣
        英國(guó)與歐盟正式啟動(dòng)“離婚”程序程序
        關(guān)注用戶
        商用汽車(2016年11期)2016-12-19 01:20:16
        關(guān)注用戶
        商用汽車(2016年6期)2016-06-29 09:18:54
        關(guān)注用戶
        商用汽車(2016年4期)2016-05-09 01:23:12
        創(chuàng)衛(wèi)暗訪程序有待改進(jìn)
        Camera360:拍出5億用戶
        100萬(wàn)用戶
        国产不卡视频在线观看| 国产精品大屁股1区二区三区| 日本丰满少妇高潮呻吟| 亚洲av日韩综合一区尤物| 一本大道av伊人久久综合| 无码人妻精品丰满熟妇区| 乱伦一区二| 亚洲国产都市一区二区| 国内精品免费一区二区三区| 无码人妻久久一区二区三区免费 | 一区二区三区国产精品麻豆| 18岁日韩内射颜射午夜久久成人| 国产欧美亚洲精品a| 欧洲国产成人精品91铁牛tv| 亚洲av色香蕉一区二区三区潮| 中国少妇×xxxx性裸交| 人妻丰满熟妇av无码区免| 少妇的诱惑免费在线观看| 丝袜美腿一区在线观看| 男女猛烈拍拍拍无挡视频| 久久精品人成免费| 中文字幕亚洲精品人妻| 国产内射爽爽大片视频社区在线| 久久亚洲sm情趣捆绑调教| 91久久精品国产性色tv| 大香蕉av一区二区三区| 国产精成人品日日拍夜夜免费| 亚洲精品第一国产麻豆| 求网址日韩精品在线你懂的| 成人午夜高潮a∨猛片| 日本边添边摸边做边爱的网站| 亚洲午夜无码视频在线播放| 国产免费人成视频在线观看| 国产三级av在线播放| 伊人久久网国产伊人| 国产精品99久久不卡二区| 日本精品一区二区三区福利视频| 亚洲精品97久久中文字幕无码| 成人精品国产亚洲欧洲| 内射爆草少妇精品视频| 国产好大好硬好爽免费不卡|