Алгоритмы на Python

Рекурсивный Fibonacci с мемоизацией

Мемоизация сохраняет ранее вычисленные результаты.

Что такое Рекурсивный Fibonacci с мемоизацией?

Мемоизация сохраняет ранее вычисленные результаты.

Избегайте повторного вычисления одинаковых значений.

Когда это использовать?

  • Понимать алгоритмы и структуры данных.
  • Наблюдать каждый шаг и проверять граничные случаи.
  • Сравнивать время работы и память.

Пример кода

Запустить код →
main.py
from functools import cache

@cache
def fibonacci(number):
    if number < 2:
        return number
    return fibonacci(number - 1) + fibonacci(number - 2)

print(fibonacci(10))

Ожидаемый результат

55

Как это работает

Кэш сокращает экспоненциальное время до O(n), используя O(n) памяти.

Измените значения и запустите программу в онлайн-компиляторе Python CodeUtility без локальной установки Python.

Практические задания

Изменяйте входные данные и проверяйте граничные случаи перед работой с большими наборами.

  1. Проверьте пустой ввод, один элемент и дубликаты.
  2. Выводите состояние после каждого шага.
  3. Сравните производительность с другим решением.
Запустить в Python IDE →