国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python兔子毒藥問題實例分析

2020-02-23 00:17:04
字體:
來源:轉載
供稿:網友

本文實例分析了Python兔子毒藥問題。分享給大家供大家參考。具體分析如下:

問題大致是這樣的:1000瓶無色無味的液體,其中一瓶為毒藥,其它皆為清水,毒藥只取一滴與清水混合為一瓶也可以毒死兔子?,F在有10只兔子,當兔子喝下毒藥兩個小時后死去,請設計一種方案,能夠在24小時內找到這瓶毒藥。
................2分鐘后
前面的問題你一定想清楚了,那么略改動一下:1000瓶無色無味的液體,其中一瓶為毒藥,其它皆為清水,毒藥只取一滴與清水混合為一瓶也可以毒死兔子?,F在有10只兔子,當兔子喝下毒藥20個小時后死去,請設計一種方案,能夠在24小時內找到這瓶毒藥。
................2分鐘后
有多種方法,比如我每隔5分鐘給兔子喝一次100瓶液體混合在一起的東西,根據兔子死去的先后順序,就可以判斷是那一瓶了。

有沒有更好的辦法呢,我這里僅僅提供一種時間最優的方法,也就是在20個小時找到這瓶毒藥。當然也可以有死的兔子最少,在死去兔子和時間找到一個最佳折中點的優化問題。
方法如下:
給10只兔子編號1-10,每只兔子代表一個數,列表如下:
編號    1    2    3    4    5    ...    10
數字    1    2    4    8    16    ...    512

瓶子也有編號,依次為1-1000。    呵呵,聰明的你應該知道我要怎么做了吧,不過我還是要說下去,并寫python代碼來實現。
我希望是當編號為Y1,Y2,Y3...的兔子死去時,可以推導出編號為X瓶子為毒藥。比如編號為1,2,4的兔子死去,那就得知 兔子對應的數字 為1+2+8=11,就是編號為11的瓶子是毒藥。比如編號為1,4,10的兔子死去,那就得知 兔子對應的數字 為1+8+512=521,就是編號為521的瓶子是毒藥。
現在的問題就是要知道編號不同的每只兔子要喝哪幾瓶液體。

Python代碼如下:

def main():    """  baselist是兔子編號從1-10對應的數字,  result是最終每只兔子要喝的液體    """  baselist=[1,2,4,8,16,32,64,128,256,512]  result=[[],[],[],[],[],[],[],[],[],[]]  for water in range(1,1001):    watertmp=water    for i in range(9,-1,-1):      if (watertmp-baselist[i])>=0:        watertmp -= baselist[i]        result[i].append(water)  for i in range(1,11):    print "The Num %d rabit need drink the next liquid " % i+1,result[i]  passif __name__=="__main__":  main()

希望本文所述對大家的Python程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 塘沽区| 大洼县| 乳山市| 鹤山市| 汤原县| 木兰县| 阿尔山市| 天全县| 靖远县| 汤原县| 四川省| 凤山市| 六盘水市| 镇安县| 扶沟县| 买车| 辉县市| 永新县| 三江| 湖州市| 安福县| 宁阳县| 遂溪县| 六盘水市| 板桥市| 昂仁县| 清苑县| 红原县| 龙岩市| 星子县| 平和县| 英超| 广汉市| 平原县| 克拉玛依市| 鄯善县| 平阴县| 霞浦县| 文成县| 沿河| 柳江县|