国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

python求解漢諾塔游戲

瀏覽:104日期:2022-07-18 10:20:52

本文實例為大家分享了python求解漢諾塔游戲的具體代碼,供大家參考,具體內容如下

一、問題定義

百度百科定義:漢諾塔(又稱河內塔)問題是源于印度一個古老傳說的益智玩具。據說大梵天創造世界的時候做了三根金剛石柱子,在一根柱子上從下往上按照從小到大順序摞著64片黃金圓盤。大梵天命令婆羅門借助其中一根柱子,把64片黃金圓盤重新擺放到第三個根柱子上。并且規定,在小黃金圓盤上不能放大的黃金圓盤,在三根柱子之間一次只能移動一個圓盤。

例如,如果黃金圓盤只有3片,則為了滿足游戲規則,那么必須按照如下圖所示的8個步驟完成:

python求解漢諾塔游戲

二、代碼實現

# 將n個盤子借助y柱從x柱移動到z柱def hanoi(n, x, y, z): count = 0 if n == 1: # 遞歸出口 print(x, ’ --> ’, z) return 1 else: # 將前n - 1個盤子借助z柱從x柱移動到y柱上 count += hanoi(n - 1, x, z, y) # 遞歸調用 # 將最底下的1個盤子從x柱移動到z柱上 count += hanoi(1, x, y, z) # 將n - 1個盤子借助x柱從y柱移動到z柱上 count += hanoi(n - 1, y, x, z) # 遞歸調用 return countdef main(): hanoi_level = input('請輸入漢諾塔層數:') print('總共移動次數為%d' % hanoi(int(hanoi_level), ’X’, ’Y’, ’Z’))if __name__ == ’__main__’: main()

當黃金圓盤為4層時,代碼的輸出結果為:

請輸入漢諾塔層數:4X --> YX --> ZY --> ZX --> YZ --> XZ --> YX --> YX --> ZY --> ZY --> XZ --> XY --> ZX --> YX --> ZY --> Z總共移動次數為15

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 青龙| 兴安县| 开封县| 宿松县| 洞头县| 安阳县| 灵石县| 万盛区| 牡丹江市| 曲水县| 牡丹江市| 嘉荫县| 上虞市| 白山市| 武穴市| 武鸣县| 磐安县| 加查县| 嘉兴市| 石门县| 石林| 乐陵市| 白城市| 上蔡县| 竹北市| 赤壁市| 冷水江市| 祁阳县| 罗山县| 常山县| 荆州市| 通榆县| 塘沽区| 张家川| 新邵县| 茌平县| 延长县| 固镇县| 板桥市| 额济纳旗| 镇雄县|