2016-03-01 29 views
-5

所以我們剛剛完成在學校的學科遞歸,我仍然不知道「爲什麼?」。遞歸何時使用?

我覺得我剛纔已經學到了很多關於數學的地獄編程方式與後來通過考試的唯一目的,然後永遠不再。

所以,我想知道的是什麼時候使用它?我只能找人說:「當你想在自身內部調用一個函數」但爲什麼要這麼做?

+0

[什麼是遞歸和什麼時候應該使用它?](http://stackoverflow.com/questions/3021/what-is-recursion-and-when-should-i-use-it) –

+0

我知道什麼它是但是何時使用它是的 – Nulle

回答

2

遞歸是計算的基礎,每一個可能的程序都可以表示爲一個遞歸函數(在lambda演算中)。因此,理解遞歸可以讓你更深入地理解計算的原理。其次,遞歸也是理解元級的工具:自然數的很多證明都遵循一種稱爲「自然感應」的模式,這是結構感應的一種特殊情況,這又可以讓你理解特性非常複雜的系統以相對簡單的方式。最後,它還有助於編寫出好的(即可讀的)算法:無論何時有重複計算中存儲/處理的數據(即多於遞增計數器),您都可以使用遞歸函數隱式管理堆棧爲你。由於大多數系統都配備了機器堆棧,因此這通常也非常有效。

+0

非常感謝你choeger! – Nulle

+0

接受我的答案如何? – choeger

+0

對不起。以爲我有。 – Nulle