91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

迭部县| 惠水县| 柳州市| 岫岩| 渭源县| 洛南县| 师宗县| 全南县| 朝阳区| 钦州市| 德清县| 海林市| 清镇市| 平定县| 伊川县| 融水| 塔河县| 宁德市| 荥经县| 昂仁县| 金塔县| 鄂尔多斯市| 金山区| 五原县| 邢台县| 临江市| 长海县| 安顺市| 陆丰市| 土默特右旗| 文安县| 旬邑县| 江都市| 镇沅| 义马市| 福海县| 东兴市| 吴忠市| 莱阳市| 合山市| 乌什县|