Задание EGEINF4408DC: Рекурсия и рекуррентные зависимости

ФИПИ · ЕГЭ · все форматы ответа · 2475 заданий

Открыть решение ↓ Ошибка или пожелание

Тип задачи: Рекурсия и рекуррентные зависимости.

Учебные темы: Рекурсия. Рекурсивные процедуры и функции. Использование стека для организации рекурсивных вызовов.

Впишите правильный ответ.

Алгоритм вычисления значения функции F(n), где n –  натуральное число, задан следующими соотношениями:

F(n) = 1 при n = 1;

F(n) = n + F(n − 1), если n чётно;

F(n) = 2 × F(n − 2), если n > 1 и при этом n нечётно.

Чему равно значение функции F(24)?



i
СВОЙСТВА ЗАДАНИЯ
КЭС:
3.7 Рекурсия. Рекурсивные процедуры и функции. Использование стека для организации рекурсивных вызовов
3.16 Динамическое программирование как метод решения задач с сохранением промежуточных результатов. Задачи, решаемые с помощью динамического программирования: вычисление рекурсивных функций, подсчёт количества вариантов, задачи оптимизации
3.17 Понятие об объектно-ориентированном программировании. Объекты и классы. Свойства и методы объектов. Объектно-ориентированный анализ. Разработка программ на основе объектно-ориентированного подхода. Инкапсуляция, наследование, полиморфизм
Тип ответа:Краткий ответ
Номер: 4408DC
НЕ РЕШЕНО Ответить

Решение задания EGEINF4408DC

Ответ: 2072

Дано: аргумент n — натуральное число. Правила вычисления:
F(n) = 1 при n = 1.
F(n) = n + F(n − 1) при n чётно.
F(n) = 2 · F(n − 2) при n ≥ 2 и n нечётно.
Найти R = F(24).

Рекурсия ссылается только на меньшие аргументы. Поэтому вычисляем значения по возрастанию n, начиная с базы. Для каждого нового n сначала определяем его чётность, затем выбираем ровно соответствующую формулу. Значения предыдущих аргументов уже известны; менять местами чётную и нечётную ветви нельзя.

F(1) = 1.
F(2) = 2 + F(2 − 1) = 2 + 1 = 3.
F(3) = 2 · F(3 − 2) = 2 · 1 = 2.
F(4) = 4 + F(4 − 1) = 4 + 2 = 6.
F(5) = 2 · F(5 − 2) = 2 · 2 = 4.
F(6) = 6 + F(6 − 1) = 6 + 4 = 10.
F(7) = 2 · F(7 − 2) = 2 · 4 = 8.
F(8) = 8 + F(8 − 1) = 8 + 8 = 16.
F(9) = 2 · F(9 − 2) = 2 · 8 = 16.
F(10) = 10 + F(10 − 1) = 10 + 16 = 26.
F(11) = 2 · F(11 − 2) = 2 · 16 = 32.
F(12) = 12 + F(12 − 1) = 12 + 32 = 44.
F(13) = 2 · F(13 − 2) = 2 · 32 = 64.
F(14) = 14 + F(14 − 1) = 14 + 64 = 78.
F(15) = 2 · F(15 − 2) = 2 · 64 = 128.
F(16) = 16 + F(16 − 1) = 16 + 128 = 144.
F(17) = 2 · F(17 − 2) = 2 · 128 = 256.
F(18) = 18 + F(18 − 1) = 18 + 256 = 274.
F(19) = 2 · F(19 − 2) = 2 · 256 = 512.
F(20) = 20 + F(20 − 1) = 20 + 512 = 532.
F(21) = 2 · F(21 − 2) = 2 · 512 = 1024.
F(22) = 22 + F(22 − 1) = 22 + 1024 = 1046.
F(23) = 2 · F(23 − 2) = 2 · 1024 = 2048.
F(24) = 24 + F(24 − 1) = 24 + 2048 = 2072.

Требуемое значение: R = F(24) = 2072.

Проверка. Начальные значения совпадают с базой из условия. Каждая следующая строка использует только уже вычисленные значения и свою ветвь по чётности. Повторный расчёт по зависимостям от искомого аргумента к базовым даёт тот же результат 2072. Никакие значения в таблице не округляются.

Ответ: 2072.

Помочь улучшить сайт

Напишите пожелание к сайту или решению либо сообщите о найденной неточности в задании EGEINF4408DC.

Сообщение увидит только команда сайта: на странице оно не публикуется.

Комментарии к решению

Комментарии видны всем посетителям сайта.

Комментариев пока нет. Будьте первым.

Чтобы оставить комментарий, войдите или зарегистрируйтесь.