最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python求解漢諾塔游戲

 更新時間:2020年07月09日 17:09:00   作者:TakingCoding4Granted  
這篇文章主要為大家詳細(xì)介紹了python求解漢諾塔游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

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

一、問題定義

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

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

二、代碼實現(xiàn)

# 將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(tǒng)柱上
  count += hanoi(n - 1, x, z, y) # 遞歸調(diào)用

  # 將最底下的1個盤子從x柱移動到z柱上
  count += hanoi(1, x, y, z)

  # 將n - 1個盤子借助x柱從y柱移動到z柱上
  count += hanoi(n - 1, y, x, z) # 遞歸調(diào)用

  return count


def main():

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


if __name__ == '__main__':
 main()

當(dāng)黃金圓盤為4層時,代碼的輸出結(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
總共移動次數(shù)為15

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • python中g(shù)eopandas庫安裝出現(xiàn)各種問題的解決辦法

    python中g(shù)eopandas庫安裝出現(xiàn)各種問題的解決辦法

    這篇文章主要介紹了關(guān)于python中g(shù)eopandas庫安裝出現(xiàn)各種問題的解決辦法,總結(jié)了在Windows下兩種安裝geopandas庫的方法,方法一是在新環(huán)境下使用conda命令安裝,方法二通過離線安裝GDAL、Fiona、Pyproj、Rtree、Shapely五個庫,再用pip安裝geopandas,需要的朋友可以參考下
    2024-11-11
  • 關(guān)于Matplotlib繪制動態(tài)實時曲線的方法改進指南

    關(guān)于Matplotlib繪制動態(tài)實時曲線的方法改進指南

    這篇文章主要給大家介紹了關(guān)于Matplotlib繪制動態(tài)實時曲線的相關(guān)資料,matplotlib是python里最popular的畫圖工具,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-06-06
  • Python實現(xiàn)mysql數(shù)據(jù)庫更新表數(shù)據(jù)接口的功能

    Python實現(xiàn)mysql數(shù)據(jù)庫更新表數(shù)據(jù)接口的功能

    這篇文章主要給大家介紹了關(guān)于Python如何實現(xiàn)mysql數(shù)據(jù)庫更新表數(shù)據(jù)接口功能的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-11-11
  • python中的PywebIO模塊制作一個數(shù)據(jù)大屏

    python中的PywebIO模塊制作一個數(shù)據(jù)大屏

    這篇文章主要介紹了python中的PywebIO模塊制作一個數(shù)據(jù)大屏,一個制作數(shù)據(jù)大屏的工具,非常的好用,100行的Python代碼就可以制作出來一個完整的數(shù)據(jù)大屏,并且代碼的邏輯非常容易理解,需要的朋友可以參考一下
    2022-03-03
  • python微信跳一跳游戲輔助代碼解析

    python微信跳一跳游戲輔助代碼解析

    本篇文章給大家詳細(xì)講解了用python寫的一個微信跳一跳輔助腳本的源碼,對此有興趣的朋友參考下吧。
    2018-01-01
  • python并發(fā)編程多進程之守護進程原理解析

    python并發(fā)編程多進程之守護進程原理解析

    這篇文章主要介紹了python并發(fā)編程多進程之守護進程原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-08-08
  • Django配置跨域并開發(fā)測試接口

    Django配置跨域并開發(fā)測試接口

    這篇文章主要介紹了Django配置跨域并開發(fā)測試接口,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-11-11
  • 利用python數(shù)據(jù)分析處理進行炒股實戰(zhàn)行情

    利用python數(shù)據(jù)分析處理進行炒股實戰(zhàn)行情

    這篇文章主要介紹了利用python數(shù)據(jù)分析進行炒股實戰(zhàn)行情,本文主要介紹三部分:數(shù)據(jù)采集,數(shù)據(jù)預(yù)處理,利用SVM算法進行建模,本文僅供參考借鑒
    2021-08-08
  • python 讀寫txt文件 json文件的實現(xiàn)方法

    python 讀寫txt文件 json文件的實現(xiàn)方法

    下面小編就為大家?guī)硪黄猵ython 讀寫、創(chuàng)建 文件的實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-10-10
  • Pytorch中關(guān)于nn.Conv2d()參數(shù)的使用

    Pytorch中關(guān)于nn.Conv2d()參數(shù)的使用

    這篇文章主要介紹了Pytorch中關(guān)于nn.Conv2d()參數(shù)的使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06

最新評論

株洲县| 罗山县| 鸡西市| 莒南县| 湖北省| 娄烦县| 金平| 威远县| 鄂尔多斯市| 开封县| 虹口区| 肇庆市| 汉源县| 油尖旺区| 阿鲁科尔沁旗| 敦化市| 宝丰县| 萝北县| 涞水县| 阳泉市| 汉寿县| 宿松县| 丰原市| 丁青县| 济南市| 锦州市| 深水埗区| 临泉县| 汉阴县| 揭东县| 清水河县| 长兴县| 拉萨市| 黎城县| 深州市| 长子县| 丰台区| 定南县| 曲松县| 兴仁县| 嘉峪关市|