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

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

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

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

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

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

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

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

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

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

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

 



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

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

Ответ: 40852

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

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

F(0) = 0.
F(1) = 0.
F(2) = 2 · F(2 − 1) = 2 · 0 = 0.
F(3) = 2 · 3 + F(3 − 1) = 2 · 3 + 0 = 6.
F(4) = 2 · F(4 − 1) = 2 · 6 = 12.
F(5) = 2 · 5 + F(5 − 1) = 2 · 5 + 12 = 22.
F(6) = 2 · F(6 − 1) = 2 · 22 = 44.
F(7) = 2 · 7 + F(7 − 1) = 2 · 7 + 44 = 58.
F(8) = 2 · F(8 − 1) = 2 · 58 = 116.
F(9) = 2 · 9 + F(9 − 1) = 2 · 9 + 116 = 134.
F(10) = 2 · F(10 − 1) = 2 · 134 = 268.
F(11) = 2 · 11 + F(11 − 1) = 2 · 11 + 268 = 290.
F(12) = 2 · F(12 − 1) = 2 · 290 = 580.
F(13) = 2 · 13 + F(13 − 1) = 2 · 13 + 580 = 606.
F(14) = 2 · F(14 − 1) = 2 · 606 = 1212.
F(15) = 2 · 15 + F(15 − 1) = 2 · 15 + 1212 = 1242.
F(16) = 2 · F(16 − 1) = 2 · 1242 = 2484.
F(17) = 2 · 17 + F(17 − 1) = 2 · 17 + 2484 = 2518.
F(18) = 2 · F(18 − 1) = 2 · 2518 = 5036.
F(19) = 2 · 19 + F(19 − 1) = 2 · 19 + 5036 = 5074.
F(20) = 2 · F(20 − 1) = 2 · 5074 = 10148.
F(21) = 2 · 21 + F(21 − 1) = 2 · 21 + 10148 = 10190.
F(22) = 2 · F(22 − 1) = 2 · 10190 = 20380.
F(23) = 2 · 23 + F(23 − 1) = 2 · 23 + 20380 = 20426.
F(24) = 2 · F(24 − 1) = 2 · 20426 = 40852.

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

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

Ответ: 40852.

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

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

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

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

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

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

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