МЕМОИЗАЦИЯ В 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

BLGPG-44554E328296-24-09-19-20

Новые материалы: