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

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

C --> B C-->A 這步

C --> B ?C-->A是怎么來的明明沒有move(n-1,c,b,a) 為什么能得到C-->


正在回答

5 回答

樓主,我解決了。

def move(n,a,b,c):#為了解釋,我叫a為位置1,b為位置2,c為位置3
if n == 1:
print a,'-->',c
return
move(n-1,a,c,b)#這一句實現了整個過程中的全部2,3位置互換
print a,'-->'c
move(n-1,b,a,c)#這一句實現了整個過程中的全部1,2位置互換
move(4,'A','B','C')#所以總的來看,C是可以實現先和B互換再跟A互換的

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

慕粉2014408783 提問者

加油(? •?_•?)?
2017-01-04 回復 有任何疑惑可以回復我~
#2

神愛鬻 回復 慕粉2014408783 提問者

干巴爹(? •_•)?
2017-01-07 回復 有任何疑惑可以回復我~

樓主不妨這樣理解:遞歸實現的過程中“源柱,過度柱,目標柱”是改變的。

????

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

同問,樓主解決了嗎?

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

這是應為具有遞歸關系,你想想,通過上面的代碼,b的位置可以到最后的時候移動到a的位置上,而中間的函數move(n-1,a,c,b),此時c的位置相當于之前b的位置,那么在其函數內部遞歸時,可以像之前b一樣走到a的位置上,就形成了C-->

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

慕粉2014408783 提問者

額 意思是函數遞歸時自動形成的?不過怎么自動形成呢?或者說 b變動位置是因為我在函數中聲明了 可是我沒有聲明c變為源柱(a:源柱,b:過度柱,c:目標柱),它怎么移動位置的呢?
2016-12-02 回復 有任何疑惑可以回復我~
#2

xiyangwugang 回復 慕粉2014408783 提問者

對于這個問題是用遞歸的思想來簡化了操作,move(n,a,b,c)函數中的四個變量,n為移動的數量,a,b,c的含義是把a上的物體全部移動到c上,就相當于將第二個參數移動到第四個參數。move(n-1,a,c,b)與move(n-1,b,a,c)的調用就產生了C --> B C-->A
2016-12-02 回復 有任何疑惑可以回復我~
#3

慕粉2014408783 提問者 回復 xiyangwugang

謝謝 不過可以寫一下 C-->A 或者C-->B的具體過程么?只有這里想不明白
2016-12-02 回復 有任何疑惑可以回復我~

能上代碼看看?

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

慕粉2014408783 提問者

跟參考答案一樣的 def move(n,a,b,c): if n == 1: print a,'-->',c return move(n-1,a,c,b) print a,'-->'c move(n-1,b,a,c) move(4,'A','B','C') 不知道C——>是怎么實現的 編程思路明白
2016-12-02 回復 有任何疑惑可以回復我~

舉報

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

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

進入課程

C --> B C-->A 這步

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

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

幫助反饋 APP下載

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

公眾號

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