遞歸是程式設計中的一個基本概念,但有時它看起來有點神秘。所以,讓我們簡化一下,看看它比看起來更容易!
遞歸是指函數透過呼叫...本身來解決問題!是的,沒錯。它就像一個你一遍又一遍地講述的故事,只是每次都短一點,直到你到達終點。但要使其正常運作,需要滿足兩個黃金法則:
現在,讓我們看看這在實踐中是如何運作的!
為了更好地解釋它,沒有什麼比階乘的經典範例更好的了!想像一下我們想要計算 (5!)(讀「五階乘」)。它是如何運作的?
5! = 5 * 4 * 3 * 2 * 1!
但是,透過遞歸,我們可以這樣想:
5! = 5 * 4!
並且,按順序,4! 是(4 * 3!),依此類推,直到我們達到(1!),這是我們的基本情況(終止條件)。
讓我們來看看程式碼,因為這就是概念的實現之處!這是使用遞歸的著名階乘計算:
def fatorial(numero): if numero == 0 or numero == 1: return 1 # caso base else: return numero * fatorial(numero - 1)
說明:
另一個廣泛使用的例子是斐波那契數列。她是這樣的:
f(0) = 0, f(1) = 1, f(n) = f(n - 1) f(n - 2)
讓我們來看程式碼!
def seq_fib(n): if n == 0: return 0 if n == 1: return 1 if n > 1: return seq_fib(n - 1) + seq_fib(n - 2)
斐波那契複雜度:
這就是為什麼對於大值,純遞歸的斐波那契計算可能有點麻煩。但出於學習目的,這是一個很好的例子!
遞歸是程式設計中的關鍵概念,雖然一開始看起來有點嚇人,但透過練習它會變得容易得多。這些階乘和斐波那契例子只是開始!
如果你想練習,請在這個 Colab 中查看並複製一份!
以上是了解 Python 中的遞歸:那麼,你會面對它嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!