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

使用Python實現(xiàn)漢諾塔問題示例

 更新時間:2023年04月24日 11:31:18   作者:時代&信念  
這篇文章主要介紹了使用Python實現(xiàn)漢諾塔問題示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

前言

漢諾塔問題是一個經(jīng)典的問題。漢諾塔(Hanoi Tower),又稱河內(nèi)塔,源于印度一個古老傳說。大梵天創(chuàng)造世界的時候做了三根金剛石柱子,在一根柱子上從下往上按照大小順序摞著64片黃金圓盤。大梵天命令婆羅門把圓盤從下面開始按大小順序重新擺放在另一根柱子上。并且規(guī)定,任何時候,在小圓盤上都不能放大圓盤,且在三根柱子之間一次只能移動一個圓盤。問應該如何操作?

1.先談一下什么是遞歸?

我自己的理解就是:將自身的問題不斷減小規(guī)模,直到減小到無法減小為止。(到達遞歸結束條件)然后從小問題開始解決,小問題逐個解決之后,大問題也就迎刃而解了(遞歸回來了)

2.簡而言之就是:

原問題不斷減小為規(guī)模更小的原問題,然后小規(guī)模的原問題解決了,從而解決原來的大問題!

3.過程為:

減小規(guī)模、從小解決、遞歸回來、解決原問題?。?!

4.遞歸的關鍵是:

(1)有遞歸結束條件。

(2)不斷調用自身,減小問題規(guī)模,向遞歸結束條件靠攏。

漢諾塔問題

1.問題描述

有三根柱子,分別名為A,B,C。初始時,在柱子A上有n個圓盤,他們從下到上,盤子的大小是從大到小。在移動和擺放的過程中,小盤子必須在大盤子上面。 在保證規(guī)則的情況下,將柱子A上的所有盤子,移動到柱子C,移動中可以借助柱子B,但是得保證移動過程中小盤子必須得在大盤子上?。?! 請打印出移動過程?

在這里插入圖片描述

2.問題分析 遞歸的過程:

(1)將最上面的n-1個盤子,從A借助C移動到B

(2)將最下面的一個盤子,從A移動到C

(3)將最上面的n-1個盤子,從B借助A移動到C

遞歸的結束條件:

問題規(guī)模變成盤子數(shù)為0時,因為當盤子數(shù)為0時就不需要移動了?。?!

3.代碼(Python)

# coding:utf-8

"""
    n為初始時A柱上的盤子數(shù)
    a為起始盤子所在的柱子
    b為中轉柱子
    c為目的地柱子
"""


def hanoi(n, a, b, c):
    if n > 0:
        hanoi(n-1, a, c, b)
        print("盤子從%s移動到%s" % (a, c))
        hanoi(n-1, b, a, c)



hanoi(3, "A", "B", "C")

4.結果展示

在這里插入圖片描述

到此這篇關于使用Python實現(xiàn)漢諾塔問題示例的文章就介紹到這了,更多相關Python漢諾塔問題內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python獲取文件夾下所有文件的方法教程

    Python獲取文件夾下所有文件的方法教程

    使用Python獲取文件夾下所有文件可采用os模塊或pathlib模塊,os模塊通過os.listdir和os.walk方法實現(xiàn)文件遍歷,而pathlib模塊通過Path類和其iterdir與rglob方法實現(xiàn),兩種方法各有優(yōu)勢,可根據(jù)具體需求選擇使用,需要的朋友可以參考下
    2024-11-11
  • 解決使用PyCharm時無法啟動控制臺的問題

    解決使用PyCharm時無法啟動控制臺的問題

    今天小編就為大家分享一篇解決使用PyCharm時無法啟動控制臺的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Pandas數(shù)據(jù)清洗與過濾空值技巧

    Pandas數(shù)據(jù)清洗與過濾空值技巧

    在數(shù)據(jù)分析過程中,使用pandas庫進行數(shù)據(jù)清洗和過濾空值是基本而重要的步驟,首先,導入pandas庫并加載數(shù)據(jù),其次,利用isnull()或isna()方法檢查數(shù)據(jù)中的空值,接著,可以使用dropna()方法過濾掉含有空值的行,或針對特定列過濾空值
    2024-09-09
  • 解決python中導入win32com.client出錯的問題

    解決python中導入win32com.client出錯的問題

    今天小編就為大家分享一篇解決python中導入win32com.client出錯的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • python中def是做什么的

    python中def是做什么的

    在本篇文章里小編給大家分享的是關于python中def的作用以及相關用法,有需要的朋友們可以學習下。
    2020-06-06
  • Python用matplotlib庫畫圖中文和負號顯示為方框的問題解決

    Python用matplotlib庫畫圖中文和負號顯示為方框的問題解決

    matplotlib中畫圖的時候會遇到負號顯示為方框的問題,下面這篇文章主要給大家介紹了關于Python用matplotlib庫畫圖中文和負號顯示為方框的問題解決,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-07-07
  • python geopandas讀取、創(chuàng)建shapefile文件的方法

    python geopandas讀取、創(chuàng)建shapefile文件的方法

    shapefile是GIS中非常重要的一種數(shù)據(jù)類型,在ArcGIS中被稱為要素類(Feature Class),主要包括點(point)、線(polyline)和多邊形(polygon),本文重點給大家介紹python geopandas讀取、創(chuàng)建shapefile文件的方法,需要的朋友參考下吧
    2021-06-06
  • Tensorflow2.1 MNIST圖像分類實現(xiàn)思路分析

    Tensorflow2.1 MNIST圖像分類實現(xiàn)思路分析

    這篇文章主要為大家介紹了Tensorflow2.1 MNIST圖像分類實現(xiàn)思路分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • Python 使用PIL中的resize進行縮放的實例講解

    Python 使用PIL中的resize進行縮放的實例講解

    今天小編就為大家分享一篇Python 使用PIL中的resize進行縮放的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • Python使用Streamlit快速構建一個數(shù)據(jù)應用程序

    Python使用Streamlit快速構建一個數(shù)據(jù)應用程序

    Streamlit是一個開源的Python庫,它允許數(shù)據(jù)科學家和開發(fā)人員快速創(chuàng)建和分享數(shù)據(jù)應用程序,而無需具備復雜的Web開發(fā)經(jīng)驗,本文將介紹Streamlit的基本用法,并通過一個實際案例展示如何快速構建一個簡單的數(shù)據(jù)應用程序,需要的朋友可以參考下
    2025-03-03

最新評論

尚义县| 德庆县| 友谊县| 旌德县| 理塘县| 馆陶县| 宣武区| 新泰市| 大丰市| 英山县| 五寨县| 磐石市| 新民市| 桐乡市| 定安县| 隆安县| 岑巩县| 稷山县| 武强县| 萍乡市| 宁武县| 吉木萨尔县| 江山市| 靖宇县| 崇信县| 赣州市| 大连市| 皮山县| 商水县| 高唐县| 阿拉尔市| 高碑店市| 灵台县| 土默特左旗| 收藏| 上林县| 丹阳市| 晴隆县| 双鸭山市| 东乡族自治县| 双流县|