Метод программирования, называемый памятью, направлен на улучшение производительности функций за счет кэширования ранее вычисленных результатов. Параметры запоминаемой функции используются каждый раз, когда она вызывается для индексации кеша. Без запуска полного кода данные могут быть возвращены, если они присутствуют. Если нет, то вызывается функция, а результат кэшируется.

Динамическое программирование использует особый вид кэширования, называемый запоминанием. Используя кэширование, мы можем ускорить наши программы и сохранить некоторые данные в легкодоступном месте для будущего использования. Когда мы вызываем немедленно, он немедленно возвращает остальные, сохраняя при этом предыдущий результат.

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

Последовательность Фибоначчи

Чтобы не запоминать его, давайте разработаем функцию, вычисляющую последовательность Фибоначчи.

Каждое значение в последовательности Фибоначчи представляет собой список чисел, где сумма двух значений перед ним.

// fibonacci without memoization
const fib = (num) => 
    if (num < 2) 
        return 1
     else if (!num 

console.log(fib(10))

Как видно из приведенного выше кода, мы не кэшировали, как использовалась наша функция. С кэшированием процесс пойдет намного быстрее и за меньшее время.

// fibonacci sequence with memoization to run the function fib()
const fib = (num) => 
    let cache = ; // set cache
    // if exists in cache return from cache
    if (cache[num] !== undefined) 
        console.log(`$num is cached!`);
        return cache[num];
    
    // if not in cache perform operation
    cache[num] = num < 2 ? 1 : fib(num - 1) + fib(num - 2);
    return cache[num];

const result = fib(5)
console.log(result) // 8

Мы создали объект кеша из вышеупомянутого фрагмента кода, который функция fib() использует для хранения своего выходного значения. Каждый раз, когда функция вызывается, первое, что она делает, это проверяет, сохранено ли уже введенное число в объекте кеша. Если это так, приложение немедленно возвращает сохраненное значение.

Упражнение

Давайте воспользуемся кэш-выполнением функции factorial(), чтобы получить факториал заданного числа.

// factorial of a number with memoization (cache execution)
const factorial = (num) => ;

console.log(factorial(5)); // 120

https://www.codesolutionstuff.com/what-is-memoization/

Изучите разработку полного стека — CodeSolutionStuff