Sobes.tech
Назад к вопросам
Middle
219

Что такое хвостовая рекурсия?

Ответ от нейросети

sobes.tech AI

Хвостовая рекурсия — это вид рекурсии, при котором рекурсивный вызов является последней операцией в функции, то есть после него не выполняется никаких дополнительных действий. Это позволяет оптимизировать использование стека вызовов, так как компилятор или интерпретатор может заменить рекурсивный вызов на цикл, избегая переполнения стека.

Пример хвостовой рекурсии на Python (хотя стандартный интерпретатор CPython не оптимизирует хвостовую рекурсию):

def factorial_tail(n, acc=1):
    if n == 0:
        return acc
    return factorial_tail(n-1, acc * n)

print(factorial_tail(5))  # 120

Здесь factorial_tail вызывает себя в конце функции, передавая накопленное значение acc. Такой подход удобен для оптимизации в языках, поддерживающих хвостовую оптимизацию.