Numba 是一個用于加速 Python 代碼的 JIT 編譯器,它可以將 Python 函數編譯成本地機器碼,從而提高性能。要使用 Numba 優化遞歸函數,你可以使用 @numba.njit
裝飾器。下面是一個使用 Numba 優化遞歸函數的示例:
import numba
from numba import njit
@njit
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n - 1)
n = 100
result = factorial(n)
print(f"Factorial of {n} is {result}")
在這個示例中,我們定義了一個名為 factorial
的遞歸函數,用于計算階乘。我們使用 @njit
裝飾器將其編譯為本地機器碼。然后,我們調用該函數并打印結果。
需要注意的是,Numba 對遞歸函數的支持有限,因為它會將遞歸調用展開為循環。因此,對于某些具有大量遞歸層次的復雜遞歸函數,Numba 可能無法提供顯著的性能提升。在這種情況下,你可能需要考慮使用其他優化技術,如動態規劃或尾遞歸優化。