亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python解漢諾塔游戲的方法

發布時間:2020-07-10 11:02:23 來源:億速云 閱讀:247 作者:清晨 欄目:開發技術

這篇文章主要介紹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 count


def main():

  hanoi_level = input("請輸入漢諾塔層數:")
  print("總共移動次數為%d" % hanoi(int(hanoi_level), 'X', 'Y', 'Z'))


if __name__ == '__main__':
  main()

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

請輸入漢諾塔層數: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
總共移動次數為15

以上是python解漢諾塔游戲的方法的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

新源县| 宣汉县| 大足县| 墨玉县| 贺兰县| 乐山市| 新郑市| 大连市| 澄城县| 盖州市| 莒南县| 元阳县| 南宫市| 南丰县| 罗甸县| 九寨沟县| 大冶市| 和硕县| 藁城市| 安义县| 紫金县| 日喀则市| 昭通市| 潼南县| 滨州市| 瑞金市| 蒙城县| 介休市| 屏东市| 桐梓县| 泰州市| 兰州市| 墨竹工卡县| 天气| 汉阴县| 永修县| 西宁市| 福鼎市| 佛教| 烟台市| 锦屏县|