python漢諾塔遞歸函數(shù)是什么?
不管是哪種函數(shù)語(yǔ)言,漢諾塔一直都是常見(jiàn)的案例學(xué)習(xí),大家可能從字面上不理解,實(shí)際上就是一種益智類游戲,比如有三個(gè)柱子,其中一個(gè)柱子上有大小不等的圓盤,需要讓我們圓盤的相互移動(dòng)上,要保證上面圓盤小于下面,這套游戲規(guī)則就構(gòu)成了漢諾塔,在python里經(jīng)常被使用,下面來(lái)詳細(xì)了解學(xué)習(xí)下。
問(wèn)題要求:
需要輸出移動(dòng)圓盤的數(shù)量以及步驟
解析:
1、圓盤1號(hào)通過(guò)3號(hào)移動(dòng)2號(hào),公式為:hn(n-1,A,C,B)
2、圓盤2號(hào)通過(guò)1號(hào)移動(dòng)3號(hào),公式為:hn(n-1,B,A,C)
實(shí)現(xiàn)公式:
defhn(n,s_from,s_help,s_to):
ifn==1:
print(s_from,'-->',s_to)
else:
hn(n-1,s_from,s_to,s_help)
print(s_from,'-->',s_to)
hn(n-1,s_help,s_from,s_to)
n=int(input("盤子數(shù):"))
hn(n,'A','B','C')
大家可以自行帶入數(shù)量到里面去計(jì)算下,當(dāng)然除了漢諾塔游戲以外,我們可以還可以調(diào)用類似函數(shù)計(jì)算其他遞歸問(wèn)題,希望可以幫助大家學(xué)習(xí)。更多Python學(xué)習(xí)教程請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。