一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - python求解漢諾塔游戲

python求解漢諾塔游戲

2020-07-09 10:21TakingCoding4Granted Python

這篇文章主要為大家詳細介紹了python求解漢諾塔游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

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

一、問題定義

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

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

python求解漢諾塔游戲

二、代碼實現

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# 將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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://blog.csdn.net/weixin_37780776/article/details/107168070

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 婷婷色在线观看 | 国产亚洲精品激情一区二区三区 | 久久精品国产清白在天天线 | 欧美成人中文字幕 | 九九精品视频一区二区三区 | 亚洲午夜小视频 | 韩国理论三级在线观看视频 | 闺蜜的样子小说安沁在线阅读 | 免费观看一区二区 | 亚洲欧美专区精品伊人久久 | a级亚洲片精品久久久久久久 | 深夜免费在线视频 | 福利国模私拍视频在线观看 | 女人张开腿让男人桶视频免费大全 | 日本在线视频播放 | 成人午夜在线视频 | 国产一级在线观看视频 | 午夜人妻理论片天堂影院 | 亚洲成人mv | 国产区小视频 | 国产无限免费观看黄网站 | 俄罗斯烧性春三级k8播放 | 亚州日韩精品AV片无码中文 | 天堂在线免费观看 | 息与子中文字幕bd | 乌克兰bbw | 按摩师他揉我奶好爽捏我奶 | 高h文道具 | 火影小南被爆羞羞网站 | 日韩欧美一区二区三区四区 | 性派对xxxhd 性欧美video | 精品国产国偷自产在线观看 | 青青青青青国产费线在线观看 | 加勒比伊人 | 亚洲高清一区二区三区久久 | 精品午夜寂寞影院在线观看 | luanlun绝对真实乱 | 黑人巨大vs北条麻妃在线 | 国产成人99精品免费观看 | 色老板美国在线观看 | 99久久成人 |