python求解漢諾塔游戲
本文實(shí)例為大家分享了python求解漢諾塔游戲的具體代碼,供大家參考,具體內(nèi)容如下
一、問題定義
百度百科定義:漢諾塔(又稱河內(nèi)塔)問題是源于印度一個(gè)古老傳說的益智玩具。據(jù)說大梵天創(chuàng)造世界的時(shí)候做了三根金剛石柱子,在一根柱子上從下往上按照從小到大順序摞著64片黃金圓盤。大梵天命令婆羅門借助其中一根柱子,把64片黃金圓盤重新擺放到第三個(gè)根柱子上。并且規(guī)定,在小黃金圓盤上不能放大的黃金圓盤,在三根柱子之間一次只能移動(dòng)一個(gè)圓盤。
例如,如果黃金圓盤只有3片,則為了滿足游戲規(guī)則,那么必須按照如下圖所示的8個(gè)步驟完成:
二、代碼實(shí)現(xiàn)
# 將n個(gè)盤子借助y柱從x柱移動(dòng)到z柱 def hanoi(n, x, y, z): count = 0 if n == 1: # 遞歸出口 print(x, ' --> ', z) return 1 else: # 將前n - 1個(gè)盤子借助z柱從x柱移動(dòng)到y(tǒng)柱上 count += hanoi(n - 1, x, z, y) # 遞歸調(diào)用 # 將最底下的1個(gè)盤子從x柱移動(dòng)到z柱上 count += hanoi(1, x, y, z) # 將n - 1個(gè)盤子借助x柱從y柱移動(dòng)到z柱上 count += hanoi(n - 1, y, x, z) # 遞歸調(diào)用 return count def main(): hanoi_level = input("請輸入漢諾塔層數(shù):") print("總共移動(dòng)次數(shù)為%d" % hanoi(int(hanoi_level), 'X', 'Y', 'Z')) if __name__ == '__main__': main()
當(dāng)黃金圓盤為4層時(shí),代碼的輸出結(jié)果為:
請輸入漢諾塔層數(shù):4 X --> Y X --> Z Y --> Z X --> Y Z --> X Z --> Y X --> Y X --> Z Y --> Z Y --> X Z --> X Y --> Z X --> Y X --> Z Y --> Z 總共移動(dòng)次數(shù)為15
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
詳解Pytorch中的tensor數(shù)據(jù)結(jié)構(gòu)
torch.Tensor 是一種包含單一數(shù)據(jù)類型元素的多維矩陣,類似于 numpy 的 array,這篇文章主要介紹了Pytorch中的tensor數(shù)據(jù)結(jié)構(gòu),需要的朋友可以參考下2022-09-09python 處理微信對賬單數(shù)據(jù)的實(shí)例代碼
本文通過實(shí)例代碼給大家介紹了python 處理微信對賬單數(shù)據(jù),代碼簡單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-07-07Python實(shí)現(xiàn)TXT數(shù)據(jù)轉(zhuǎn)三維矩陣
在數(shù)據(jù)處理和分析中,將文本文件中的數(shù)據(jù)轉(zhuǎn)換為三維矩陣是一個(gè)常見的任務(wù),本文將詳細(xì)介紹如何使用Python實(shí)現(xiàn)這一任務(wù),感興趣的小伙伴可以了解下2024-01-01python學(xué)習(xí)筆記--將python源文件打包成exe文件(pyinstaller)
這篇文章主要介紹了通過將pyinstallerpython源文件打包成exe文件的方法,需要的朋友可以參考下2018-05-05通過python實(shí)現(xiàn)隨機(jī)交換禮物程序詳解
這篇文章主要介紹了通過python實(shí)現(xiàn)隨機(jī)交換禮物程序詳解的,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07Python如何基于rsa模塊實(shí)現(xiàn)非對稱加密與解密
這篇文章主要介紹了Python如何基于rsa模塊實(shí)現(xiàn)非對稱加密與解密,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-01-01Python3 使用cookiejar管理cookie的方法
今天小編就為大家分享一篇Python3 使用cookiejar管理cookie的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12