- Динамическое программирование (ДП) – метод решения задач путём разбиения на перекрывающиеся подзадачи, с сохранением результатов их решения для повторного использования (мемоизация).
- Основные принципы:
- оптимальная подструктура – решение задачи можно получить из решений подзадач;
- перекрывающиеся подзадачи – одни и те же подзадачи решаются многократно;
- мемоизация – сохранение результатов вычислений для избежания повторов.
- Пример. Числа Фибоначчи
n = int (input ("Введите n: "))
fib = [0] * 101
fib [1] = 1
fib [2] = 1
for i in range (3, n + 1):
fib [i] = fib [i - 1] + fib [i - 2]
print (fib [n])
Информатика • 11 класс
14
Динамическое программирование как метод решения задач с сохранением промежуточных результатов (Python)
Было полезно?
Рекомендуем
Вы учитель или ученик?
Познакомьтесь с нашим образовательным онлайн-сервисом с тысячами интерактивных работ
Учителю
Удобно проводить уроки в классе, назначать работы на дом и анализировать результаты всего класса или конкретных учеников
Ученику
Самостоятельно изучать новые и повторять пройденные темы, готовиться по индивидуальной траектории и оценивать результаты на наглядных графиках