Пока читаю еще один интересный сообщение относительно for
оптимизация цикла, я заметил, что один из комментаторов предложил использовать memoization
техника.
Я немного покопался, чтобы узнать больше, и нашел несколько примеров того, как запоминать такие функции, как факториал или же Фибоначи последовательность просто назвать два.
Я могу следовать им и понять общую идею, но я борюсь с тем, как это можно применить к простой арифметической операции, такой как в оригинальном посте:
for (j=0; j < ARRAY_SIZE; j++) {
sum += array[j];
}
Какая часть будет уже рассчитана?
Возможно ли это или комментатор ошибочен в предположении, что он может применяться здесь?
Просто интересуюсь обучением memoization
Из тех методов, которые описаны в этом посте, я знаю, что есть и другие методы, такие как развертывание, которые обеспечивают значительную оптимизацию.
Этот цикл не запоминается сам по себе. мемоизации применимо, когда вы можете хранить ранее решенные подзадачи и использовать их для вычисления больших подзадач / проблем. Поэтому он тесно связан с функциями, которые могут быть решены с помощью рекурсии, поскольку это также означает, что проблема разбита на подзадачи. (Смотрите также: Динамическое программирование).
Других решений пока нет …