МЕМОИЗАЦИЯ В PYTHON
Мемоизация - это техника оптимизации, которая заключается в сохранении результатов выполнения функции для определенного набора аргументов. Если функция вызывается с теми же аргументами, что и ранее, результат извлекается из кэша, а не пересчитывается, что позволяет уменьшить время выполнения программы.
В Python можно использовать декоратор для мемоизации функций:
def memoize(function): memo = {} def wrapper(*args): if args in memo: return memo[args] else: rv = function(*args) memo[args] = rv return rv return wrapper@memoizedef fibonacci(n): if n == 0 or n == 1: return n else: return fibonacci(n-1) + fibonacci(n-2)
В данном примере мы используем декоратор для мемоизации функции fibonacci. Создаем словарь memo, в котором будем сохранять результаты. Далее создаем обертку wrapper, которая проверяет, есть ли результат в словаре. Если да, возвращает его. Если нет, то вызывает функцию fibonacci и сохраняет результат в словаре.
Использование мемоизации может существенно ускорить выполнение программы при работе с функциями, имеющими большое число аргументов или вызывающимися многократно.
Алгоритмы и Структуры Данных. Урок 2: Мемоизация.
02 Мемоизация
Recursion, the Fibonacci Sequence and Memoization -- Python Tutorial -- Learn Python Programming
Memoization: The TRUE Way To Optimize Your Code In Python
Замыкания в Python. Closure Python
Оптимизация скорости работы функций в Python (memoization, @cache, custom decorator caching)
Мемоизация на примере Фибоначчи. Python
25 nooby Python habits you need to ditch
Новые материалы:
- Фреймворки для тестирования python
- Китайская теорема об остатках python
- Массив массивов python
- Ffmpeg python скачать
- Gitignore для django
- Python anaconda как установить
- Как установить библиотеку в vs code python
- Набор науробо основы программирования роботов на языке python
- Пользовательские функции python
- Не бином ньютона python задача
- Python онлайн тренажер
- Очередь на связном списке python
- Хлебные крошки django
- Python radiobutton пример