最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python實現(xiàn)漢諾塔方法匯總

 更新時間:2016年07月25日 09:04:12   投稿:hebedich  
本文給大家匯總了幾種使用Python結(jié)合遞歸算法實現(xiàn)漢諾塔的方法,非常的簡單實用,對大家學習Python很有幫助,希望大家能夠喜歡

學習python遇到的第一個問題:漢諾塔問題的實現(xiàn)。首先是不知道什么是漢諾塔問題,然后是不知道怎么實現(xiàn)。于是百度了下,結(jié)果如下:

漢諾塔:漢諾塔(又稱河內(nèi)塔)問題是源于印度一個古老傳說的益智玩具。大梵天創(chuàng)造世界的時候做了三根金剛石柱子,在一根柱子上從下往上按照大小順序摞著64片黃金圓盤。大梵天命令婆羅門把圓盤從下面開始按大小順序重新擺放在另一根柱子上。并且規(guī)定,在小圓盤上不能放大圓盤,在三根柱子之間一次只能移動一個圓盤

方法一:

def move(n,a,b,c)    # n=2
  if n==1 :      # 跳過
    print a,'-->',c
    return None
  move(n-1,a,c,b)  # n=2,執(zhí)行n-1后,move(n-1,a,c,b)->move(1,a,c,b),跳到if處,執(zhí)行print:a-->b
  print a,'-->',c  # 執(zhí)行print,這里的a和c是指定義的函數(shù)的參數(shù)a和c,打印結(jié)果是:a-->c
  move(n-1,b,a,c)  # n=1 ,執(zhí)行n-1后,跳到if處,執(zhí)行print,此時,a=b,c=c,結(jié)果是:b-->c
move(2,'a','b','c')

方法二:

def printMove(fr,to):
  print 'move from ' + str(fr) + ' to ' + str(to)
 
def Towers(n,fr,to,spare):
  if n == 1:
    printMove(fr,to)
  else:
    Towers(n-1,fr,spare,to)
    Towers(1,fr,to,spare)
    Towers(n-1,spare,to,fr)

方法三:

def hanoi(n,x,y,z):
if n==1:
print(x,'-->',z)
else:
hanoi(n-1,x,z,y)#將前n-1個盤子從x移動到y(tǒng)上
hanoi(1,x,y,z)#將最底下的最后一個盤子從x移動到z上
hanoi(n-1,y,x,z)#將y上的n-1個盤子移動到z上
n=int(input('請輸入漢諾塔的層數(shù):'))
hanoi(n,'x','y','z')

總結(jié)下:

# 漢諾塔思想筆記
# 認識漢諾塔的目標:把A柱子上的N個盤子移動到C柱子
# 遞歸的思想就是把這個目標分解成三個子目標
# 子目標1:將前n-1個盤子從a移動到b上
# 子目標2:將最底下的最后一個盤子從a移動到c上
# 子目標3:將b上的n-1個盤子移動到c上
# 然后每個子目標又是一次獨立的漢諾塔游戲,也就可以繼續(xù)分解目標直到N為1

相關文章

  • Python?如何調(diào)用手機攝像頭

    Python?如何調(diào)用手機攝像頭

    本文介紹了如何使用Python和OpenCV庫在電腦上通過網(wǎng)絡連接查看和控制安卓手機攝像頭,詳細步驟包括安裝IP攝像頭服務器軟件,在同一局域網(wǎng)中連接手機和電腦,編寫Python腳本捕獲攝像頭數(shù)據(jù),以及保存照片等操作,感興趣的朋友跟隨小編一起看看吧
    2024-09-09
  • python調(diào)用HEG工具批量處理MODIS數(shù)據(jù)的方法及注意事項

    python調(diào)用HEG工具批量處理MODIS數(shù)據(jù)的方法及注意事項

    這篇文章主要介紹了python調(diào)用HEG工具批量處理MODIS數(shù)據(jù)的方法,本文給大家提到了注意事項,通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • Tensorflow 同時載入多個模型的實例講解

    Tensorflow 同時載入多個模型的實例講解

    今天小編就為大家分享一篇Tensorflow 同時載入多個模型的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • Python三百行代碼實現(xiàn)飛機大戰(zhàn)

    Python三百行代碼實現(xiàn)飛機大戰(zhàn)

    飛機大戰(zhàn)想必大家可能玩過微信的這款小游戲,給我的感覺是這款游戲怎么可以做得這么好呢,操作簡單,容易上手,簡直是“老少皆宜”啊,既然這款游戲這么棒,能否自己動手用 Python 來實現(xiàn)呢?事實證明是可以的
    2022-09-09
  • 通過實例簡單了解Python sys.argv[]使用方法

    通過實例簡單了解Python sys.argv[]使用方法

    這篇文章主要介紹了通過實例簡單了解Python sys.argv[]使用方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-08-08
  • Python中列表、字典、元組數(shù)據(jù)結(jié)構(gòu)的簡單學習筆記

    Python中列表、字典、元組數(shù)據(jù)結(jié)構(gòu)的簡單學習筆記

    這篇文章主要介紹了Python中列表、字典、元組數(shù)據(jù)結(jié)構(gòu)的簡單學習筆記,文中講到了字典在Python3中特性和操作方法的一些變化,需要的朋友可以參考下
    2016-03-03
  • 基于Django的Admin后臺實現(xiàn)定制簡單監(jiān)控頁

    基于Django的Admin后臺實現(xiàn)定制簡單監(jiān)控頁

    Django自帶的后臺管理是Django明顯特色之一,可以讓我們快速便捷管理數(shù)據(jù)。后臺管理可以在各個app的admin.py文件中進行控制。本文將主要介紹如何利用Admin后臺實現(xiàn)監(jiān)控頁的定制,快來和小編一起學習一下吧
    2021-12-12
  • Python實現(xiàn)采集網(wǎng)站ip代理并檢測是否可用

    Python實現(xiàn)采集網(wǎng)站ip代理并檢測是否可用

    這篇文章主要介紹了如何利用Python爬蟲實現(xiàn)采集網(wǎng)站ip代理,并檢測IP代理是否可用。文中的示例代碼講解詳細,感興趣的可以試一試
    2022-01-01
  • Python2升級/安裝pip報錯問題及解決

    Python2升級/安裝pip報錯問題及解決

    這篇文章主要介紹了Python2升級/安裝pip報錯問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • Python十類常見異常類型總結(jié)(附捕獲及異常處理方式)

    Python十類常見異常類型總結(jié)(附捕獲及異常處理方式)

    在編寫程序時難免會遇到錯誤,有的是編寫人員疏忽造成的語法錯誤,有的是程序內(nèi)部隱含邏輯問題造成的數(shù)據(jù)錯誤等等,這篇文章主要給大家介紹了關于Python十類常見異常類型總結(jié)的相關資料,文中還附捕獲及異常處理方式,需要的朋友可以參考下
    2023-06-06

最新評論

嵩明县| 象州县| 芮城县| 聊城市| 奉新县| 定西市| 玉田县| 桐梓县| 台安县| 靖州| 通化县| 宁乡县| 龙海市| 明星| 玉林市| 和政县| 徐闻县| 都安| 阿克陶县| 天镇县| 上蔡县| 屏东市| 云南省| 化州市| 克山县| 邓州市| 株洲市| 西平县| 莆田市| 确山县| 庆元县| 临颍县| 铜山县| 依安县| 江孜县| 汉阴县| 玉屏| 青龙| 高安市| 芜湖县| 南江县|