欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

前言

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

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

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

2.簡(jiǎn)而言之就是:

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

3.過(guò)程為:

減小規(guī)模、從小解決、遞歸回來(lái)、解決原問(wèn)題?。?!

4.遞歸的關(guān)鍵是:

(1)有遞歸結(jié)束條件。

(2)不斷調(diào)用自身,減小問(wèn)題規(guī)模,向遞歸結(jié)束條件靠攏。

漢諾塔問(wèn)題

1.問(wèn)題描述

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

在這里插入圖片描述

2.問(wèn)題分析 遞歸的過(guò)程:

(1)將最上面的n-1個(gè)盤(pán)子,從A借助C移動(dòng)到B

(2)將最下面的一個(gè)盤(pán)子,從A移動(dòng)到C

(3)將最上面的n-1個(gè)盤(pán)子,從B借助A移動(dòng)到C

遞歸的結(jié)束條件:

問(wèn)題規(guī)模變成盤(pán)子數(shù)為0時(shí),因?yàn)楫?dāng)盤(pán)子數(shù)為0時(shí)就不需要移動(dòng)了!??!

3.代碼(Python)

# coding:utf-8

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


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



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

4.結(jié)果展示

在這里插入圖片描述

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

相關(guān)文章

  • 解決plt.savefig()和plt.show()方法得到的圖片不一樣問(wèn)題

    解決plt.savefig()和plt.show()方法得到的圖片不一樣問(wèn)題

    這篇文章主要介紹了解決plt.savefig()和plt.show()方法得到的圖片不一樣問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Pygame坦克大戰(zhàn)游戲開(kāi)發(fā)實(shí)戰(zhàn)詳解代碼

    Pygame坦克大戰(zhàn)游戲開(kāi)發(fā)實(shí)戰(zhàn)詳解代碼

    《坦克大戰(zhàn)》以二戰(zhàn)坦克為題材,既保留了射擊類(lèi)游戲的操作性,也改進(jìn)了射擊類(lèi)游戲太過(guò)于復(fù)雜難玩的高門(mén)檻特點(diǎn),集休閑與競(jìng)技于一身。經(jīng)典再度襲來(lái),流暢的畫(huà)面,瘋狂的戰(zhàn)斗,讓玩家再次進(jìn)入瘋狂坦克的世界。玩家的目標(biāo)是控制坦克躲避危險(xiǎn),消滅掉所有的敵人即可進(jìn)入下一關(guān)
    2022-02-02
  • Python3學(xué)習(xí)筆記之列表方法示例詳解

    Python3學(xué)習(xí)筆記之列表方法示例詳解

    Python3 列表 序列是Python中最基本的數(shù)據(jù)結(jié)構(gòu),下面這篇文章主要給大家介紹了關(guān)于Python3學(xué)習(xí)筆記之列表方法的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下。
    2017-10-10
  • Python中np.argmax()函數(shù)用法示例

    Python中np.argmax()函數(shù)用法示例

    np.argmax是用于取得數(shù)組中每一行或者每一列的的最大值,常用于機(jī)器學(xué)習(xí)中獲取分類(lèi)結(jié)果、計(jì)算精確度等,下面這篇文章主要給大家介紹了關(guān)于Python中np.argmax()函數(shù)用法的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • python中pd.Series()函數(shù)的使用

    python中pd.Series()函數(shù)的使用

    本文主要介紹了python中pd.Series()函數(shù)的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • 淺談Python中的可迭代對(duì)象、迭代器、For循環(huán)工作機(jī)制、生成器

    淺談Python中的可迭代對(duì)象、迭代器、For循環(huán)工作機(jī)制、生成器

    這篇文章主要介紹了Python中的可迭代對(duì)象、迭代器、For循環(huán)工作機(jī)制、生成器,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • GELU激活函數(shù)算法

    GELU激活函數(shù)算法

    這篇文章主要為大家介紹了GELU激活函數(shù)算法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • Python TKinter如何自動(dòng)關(guān)閉主窗口

    Python TKinter如何自動(dòng)關(guān)閉主窗口

    這篇文章主要介紹了Python TKinter如何自動(dòng)關(guān)閉主窗口,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • 純Python實(shí)現(xiàn)遺傳算法詳解

    純Python實(shí)現(xiàn)遺傳算法詳解

    遺傳算法(GA)是七十年代被霍蘭德提出來(lái)的,那還是8086的時(shí)代,但在如今的3nm時(shí)代,仍然散發(fā)著經(jīng)典的光輝,下面我們就來(lái)看看如何利用Python實(shí)現(xiàn)遺傳算法吧
    2023-08-08
  • Django重置migrations文件的方法步驟

    Django重置migrations文件的方法步驟

    這篇文章主要介紹了Django重置migrations文件的方法步驟,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-05-05

最新評(píng)論