[問題] 有沒有一定要用遞迴才能解決的應用?

作者: oldmove (T_T)   2016-07-10 02:11:02
如題,老師出了一個作業,我想了半天,真的想不到
也到英文網站找了,也到對岸百度找了
我內心的答案是河內塔,如果塔上有50個盤子,一定要用遞迴去解
這樣觀念是否正確呢? 我看別人有寫出不用遞迴就可以解決的程式
所以應該是錯的。
其實我對遞迴觀念一直不是很了解,老師上課說什麼例子要用
除此之外,我都沒刻意的去使用
有人有鄉民,可以說明一下,不得不用遞迴才能解決問題的應用。
作者: longlongint (華哥爾)   2016-07-10 02:33:00
要看你的定義 我覺得沒有 因為stack+迴圈 可以跑遞迴“一定要用遞迴解決”是什麼意思? 觀念or實作?
作者: wtchen (沒有存在感的人)   2016-07-10 02:50:00
有些題目是用遞迴解會好做很多,沒用遞迴的話暴力解應該也是解的出來(時間多CPU多mem多的話)...不過你是不是該去Prob_Solve板?我沒看到跟C/C++相關的字眼....
作者: Firstshadow (IamCatづミ'_'ミづ)   2016-07-10 02:54:00
遞迴只是比較好看吧
作者: cplusplus (對的人難尋)   2016-07-10 04:00:00
如一樓所說,所以程式實作上是沒有非遞迴不可~
作者: Yshuan (倚絃)   2016-07-10 04:00:00
河內塔有一個bit operate的數學運算 2^n - 1次輪詢
作者: CaptainH (Cannon)   2016-07-10 04:34:00
沒 遞迴和迴圈是一體兩面
作者: Sidney0503 (Sidney0503)   2016-07-10 06:44:00
已有證明 遞迴必可轉loop符合特定條件迴圈必可轉遞迴
作者: FRAXIS (喔喔)   2016-07-10 07:26:00
難道不是所有迴圈都可以變成遞迴嗎?
作者: EdisonX (卡卡獸)   2016-07-10 07:31:00
好奇 有不可轉回圈+stack的遞回???
作者: descent (「雄辯是銀,沉默是金」)   2016-07-10 13:20:00
河內塔好像就是只有遞迴可解
作者: cplusplus (對的人難尋)   2016-07-10 14:17:00
所有迴圈都能變遞迴~~ "實作上"兩個都能互相轉變
作者: final01 (牛頓運動定律)   2016-07-10 15:55:00
遞迴只是實做上的一種技巧不算特定文題的解法吧....?
作者: steve1012 (steve)   2016-07-10 16:23:00
都能互轉
作者: bibo9901 (function(){})()   2016-07-10 16:25:00
基於遞迴的lambda calculus 其計算能力和圖靈機是一樣的
作者: gozule (好冷啊~~)   2016-07-10 17:45:00
recursion必定可以用stack做出來,做不出來是對問題的流程還不夠清楚
作者: Sidney0503 (Sidney0503)   2016-07-10 18:55:00
作者: johnny94 (32767)   2016-07-10 19:55:00
河內有迴圈解,凡人如我覺得很神
作者: suhorng ( )   2016-07-10 20:29:00
也是有很不神的迴圈寫法啦
作者: LiloHuang (十年一刻)   2016-07-10 21:56:00
想起大神名言:遞迴只有天上有,凡人應當用迴圈。
作者: suhorng ( )   2016-07-10 22:25:00
這句話到底有什麼好啊@@ 為什麼只應天上有
作者: LiloHuang (十年一刻)   2016-07-10 22:30:00
我想大神的意思,應該是指很會寫遞迴的都很神 :P
作者: suhorng ( )   2016-07-10 22:47:00
總覺得遞迴被 stack 用的很難但不需要用 stack...
作者: gozule (好冷啊~~)   2016-07-10 23:37:00
想要練recursion的觀念,我覺得多看dynamic programming和divide-and-conquer的演算法很有幫助,因為都是三者都是把大問題切成小問題求解後,再組合回來求原始解
作者: yoco (眠月)   2016-07-11 02:21:00
hihi
作者: appleway (蘋果愛天空)   2016-07-11 06:43:00
遞迴不是演算法,只是實作手法。所以答案是沒有
作者: LiloHuang (十年一刻)   2016-07-11 07:23:00
yoco 出現了~ 哈哈 (y)
作者: iamstudent (stu)   2016-07-11 14:31:00
河內塔也可以轉迴圈的我記得以前大一計概有考過一題是寫迴圈版本quicksort
作者: hunandy14 (Charlott.HonG)   2016-07-11 15:14:00
合內塔解得出來,前一陣子剛學C++的時候有寫過還只是新手可能不是寫得很好 https://goo.gl/5mLepy方法有附裡面(jpg),不過沒詳寫給自己看的手動玩1~9階真他X不是人做的QuQ
作者: eye5002003 (下一夜)   2016-07-14 22:03:00
遞迴有使用太多區域變數的危險,只是有時語法比較漂亮
作者: a1982213 (Hasta la vesta!)   2016-07-15 15:09:00
google然後你應該在跟我修同一門課 XD 同學你好
作者: sunneo (艾斯寇德)   2016-07-29 01:13:00
Parser的reduction不來一點遞迴重複利用函式會不舒服

Links booklink

Contact Us: admin [ a t ] ucptt.com