亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

還是沒看懂這段代碼,有人能詳細講講什么意思嗎?

好煩伐....

正在回答

4 回答

不是在定義函數嗎?為什么感覺在直接使用這個函數,里面有一個默認移動方式,就是1號位借助2號位將n-1個漢諾塔移動到3號位 。這個就是直接使用 沒有去定義這個默認方式呀 是我理解的有問題嘛 請大神給講一下?

1 回復 有任何疑惑可以回復我~
#1

Typth

而且if函數中的n-1 怎么是在默認循環當中 并沒有n = n-1 這個選項呀
2018-09-12 回復 有任何疑惑可以回復我~
#2

慕慕3409045

同問,為什么move()在后面寫成(n-1,a,c,b)就可以直接代表a通過c到b??
2018-09-14 回復 有任何疑惑可以回復我~
#3

qq_orange_ekpwRU

本來我也有這樣的疑問,但是自己設置個數,例如3,看一下這個函數的是怎么執行的,可能就會理解了
2018-09-28 回復 有任何疑惑可以回復我~

這個的意思是說,你移動的軌跡是什么,然后你把你表示的移動的路線和你移動的數量表示出來就行了

0 回復 有任何疑惑可以回復我~


遞歸定義

遞歸包括遞歸體和遞歸邊界,是對大問題進行分制,從而分解到到可以解決的規模,運行過程為先遞推再回歸。

遞推流程

本題對遞歸函數move(n, a, b, c)?的定義為:將 n 個圓盤從 a 借助 b 移動到 c。因為無法直接從n階開始計算。從而要進行遞推到可以直接解決的問題規模。即有遞歸邊界n==1。當n==1時,可以直接得出結果并打印(print a+'-->',c),此時遞推結束。而剩下的n-1個沒移動的盤,就可以根據遞歸函數move的定義有move(n-1,a,c,b),即為,將 n-1 個圓盤從 a 借助 c 移動到 b。然后再將b上的盤子進過類似的操作進a移到c,即為move(n-1,b,a,c)。

回歸流程

而回歸是程序內部自動進行的,則不需手動操作(當然也可以通過手工棧的方式,自己模擬遞歸過程)??梢栽凇稊祿Y構》和《算法設計與分析》上參考詳細解釋。

5 回復 有任何疑惑可以回復我~

move(n,a,b,c)你可以理解為有n個漢諾塔,從a借助b移動到c

不管有多少個漢諾塔,基本的思路是n-1個漢諾塔先從a借助c移動到b,剩下最底的漢諾塔直接從a移動到c,再把剩下的n-1個漢諾塔從b借助a移動到c

當n=1時,就是最底的漢諾塔直接從a移動到目標的c

move(n-1,a,c,b)n-1個漢諾塔先從a借助c移動到b

move(n-1,b,a,c)n-1個漢諾塔從b借助a移動到c

題目中‘A’‘B’‘C’是三根桿的名字而已

3 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
初識Python
  • 參與學習       758390    人
  • 解答問題       8967    個

學python入門視頻教程,讓你快速入門并能編寫簡單的Python程序

進入課程

還是沒看懂這段代碼,有人能詳細講講什么意思嗎?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號