Динамическое программирование — способ решать задачи, которые перебором не решить никогда: ответ собирается из ответов маленьких подзадач, и каждый из них считается один раз. Заключительная тема курса добавляет к нему игры с полной информацией и программы с графическим интерфейсом, которые реагируют на действия пользователя.
Идея динамического программирования: подзадачи, рекуррентное соотношение, базовые значения, таблица, мемоизация. Почему наивная рекурсия для чисел Фибоначчи медленная. Количество программ для исполнителя с командами «+1» и «*2». Двумерные задачи: число путей по клетчатому полю, путь с наибольшей суммой. Выигрышные и проигрышные позиции. Событийно-ориентированное программирование: события, обработчики, виджеты Tkinter, параметр command.
Пятнадцать заданий: вычислить число Фибоначчи и число программ исполнителя, посчитать пути на поле и наибольшую сумму, сопоставить термины динамического программирования, вставить пропуски в рекуррентное соотношение, восстановить шаги решения задачи, разделить виджеты и события, найти выигрышный ход в игре.
Пояснения показывают, как растёт таблица числа программ от 1 до 10, почему в command пишут имя функции без скобок, почему позиции, кратные трём, проигрышные в игре «бери один или два камня» и почему таблицу динамики заполняют от меньших значений к большим.
Работа завершает курс «Программирование» ИТ-вертикали перед итоговым проектом с графическим интерфейсом. Задачи на число программ исполнителя и игры с полной информацией — прямые родственники заданий ОГЭ и ЕГЭ по информатике. Девятый класс завершает трёхлетний курс «Программирование» ИТ-вертикали: тридцать четыре часа на Python, посвящённые структурам данных и классическим алгоритмам. Это материал, с которого начинаются олимпиадная информатика и профильные ИТ-классы, куда поступает большинство выпускников вертикали. Эта работа — пятая из 5 по курсу.
Пройти комплект можно с любого устройства — настольного компьютера, ноутбука, планшета или смартфона. Период выполнения задаётся гибко, поэтому работу проводят и в классе, и дома. От списывания помогает наблюдение за переходами в другие вкладки и приложения в ходе прохождения.
Краткая шпаргалка по теме курса: понятия, правила и примеры, типичные ошибки. Заданий этой работы в ней нет — только материал, который она проверяет.
Шпаргалка: Динамическое программирование, игры и графический интерфейс — курс «Программирование: алгоритмы и структуры данных», 9 класс →В чём основная идея динамического программирования?
Числа Фибоначчи: F(1) = F(2) = 1, F(n) = F(n − 1) + F(n − 2). Найдите F(10).
Эта работа открывается в кабинете родителя: ребёнок проходит её с телефона или компьютера, вы видите баллы, разбор каждой ошибки и то, какие темы просели. Разовая оплата, доступ навсегда. Первый тест — бесплатно.
Купить для ребёнка — 190 ₽ Что такое кабинет родителяДля учителей и репетиторов, работающих с учениками вне школы. Разовая оплата, доступ навсегда — без подписки. Проведение с любого устройства: участники заходят по ссылке или QR-коду, регистрация не нужна. Результат и разбор ошибок — сразу после работы.
Купить тест — 390 ₽ Оферта и реквизитыДля всей школы — подключить организацию по лицензии →
Чтобы добавить тест в базу и провести диагностику — подключите школу к ЗнаниоМетр. Тест станет вашей редактируемой копией: правьте вопросы, баллы и запускайте сессии.
Посмотреть в демоРеальные экраны прохождения в ЗнаниоМетр: на компьютере, на смартфоне и версия для печати (PDF).