Задание 16 ЕГЭ: Рекурсия: вычисление значений рекурсивных функций
Дана рекурсивная функция: правило перехода и база. Нужно вычислить F(n) или посчитать, сколько чисел она выведет, — вручную, раскруткой от базы до нужного n, без запуска кода. Типичная потеря балла — ошибка в числе переходов: между F(1) и F(7) шесть шагов, а не семь.
Что проверяет задание
Рекурсивные функции. Это задание с коротким ответом, который проверяется автоматически. Одна арифметическая ошибка — ноль баллов, поэтому скорость и аккуратность здесь важнее гениальности.
Формулы к заданию
Разбор типовых задач
Пример 1
Функция задана правилом: F(1) = 1; F(n) = F(n-1) + 2 при n > 1. Чему равно F(8)?
- База: F(1) = 1. Дальше каждый шаг прибавляет двойку.
- От F(1) до F(8) семь переходов: 1 + 2 · 7.
- Проверка вручную: F(2)=3, F(3)=5, F(4)=7, F(5)=9, F(6)=11, F(7)=13, F(8)=15.
Ответ: 15
Пример 2
Функция задана правилом: F(1) = 1; F(n) = F(n-1) + n при n > 1. Чему равно F(6)?
- Раскручиваем сверху вниз: F(6) = F(5) + 6 = F(4) + 5 + 6 = … = F(1) + 2 + 3 + 4 + 5 + 6.
- F(1) = 1, складываем числа от 1 до 6.
- Тот же ответ проще получить столбиком: F(2)=3, F(3)=6, F(4)=10, F(5)=15, F(6)=21.
Ответ: 21
Пример 3
Программа записана псевдокодом: если n > 0, вывести n и вызвать F(n-2); иначе ничего не делать. Сколько чисел напечатает вызов F(11)?
- Первый вызов печатает 11 и передаёт управление F(9); тот печатает 9 и зовёт F(7).
- Цепочка значений: 11, 9, 7, 5, 3, 1. После 1 идёт вызов F(-1): условие n > 0 ложно — стоп.
- Печать стоит до рекурсивного вызова, поэтому считаем все элементы цепочки: их шесть.
Ответ: 6
Тренажёр задания (числа меняются)
Клавиши 1–9 выбирают вариант, Enter — «Проверить»
1 Функция задана правилом: F(1) = 1; F(n) = F(n-1) + 3 при n > 1. Чему равно F(7)?
2 Функция задана правилом: F(0) = 0; F(n) = F(n-1) + 2*n - 1 при n > 0. Чему равно F(6)?
3 Функция задана правилом: F(1) = 5; F(n) = F(n-1) + 2*n при n > 1. Чему равно F(9)?
4 Функция задана правилом: F(0) = 13; F(n) = F(n-1) - 1 при n > 0. Чему равно F(5)?
5 Что обязательно должно быть у рекурсивной функции, чтобы вычисление не зациклилось?
6 Рекурсивная функция обязана вызывать саму себя минимум дважды.
7 Функция задана правилом: F(1) = 1; F(n) = F(n-1) + 3 при n > 1. Чему равно F(11)?
8 Функция задана правилом: F(0) = 0; F(n) = F(n-1) + 2*n - 1 при n > 0. Чему равно F(10)?
Типичные ошибки
- Путают число переходов: между F(1) и F(8) семь шагов правила, а не восемь.
- Начинают раскрутку не с той базы: в условии база F(0), а решают от F(1) — ответ сдвигается.
- В задаче «сколько чисел выведет» не замечают, стоит ли вывод до рекурсивного вызова или после него.
- В ветвящейся рекурсии строят дерево хаотично и теряют вызовы: без таблицы значений F(n-2) считают дважды по-разному.
Повторить теорию по информатике
Разбор задания опирается на формулы и приёмы — если тема вспоминается с трудом, сначала пробегите уроки:
- 10 классРекурсия — информатика 10 класс: рекурсивные функции и алгоритмыФункция, вызывающая саму себя: анатомия базового случая и рекурсивного шага, стек вызовов и глубина, сумма цифр и НОД по Евклиду, рекурсия против цикла и разбор задания 16 ЕГЭ.
- 10 классРекурсия в Python 10 класс: примеры задачФункция, вызывающая сама себя: базовый случай, рекурсивный шаг, стек вызовов, трассировка факториала и Фибоначчи, Ханойские башни и когда рекурсия хуже цикла.
- 10 классЭлектронные таблицы: формулы, ссылки и диаграммыСчитаем в электронных таблицах по-взрослому: формулы, относительные и абсолютные ссылки, функции СУММ и СРЗНАЧ и правильный выбор диаграммы под данные.
Формат задания 16 на экзамене
Балл за задание: 2. Ориентир по времени: ≈10 минут вместе с оформлением решения. Проверяемая тема: рекурсивные функции. На тренировке лимитов нет — сначала точность, скорость придёт после 10–15 решённых задач. Планируйте экзамен так, чтобы не застревать: если решение не идёт — зафиксируйте промежуточный результат, переходите дальше и возвращайтесь в конце, потому что остальные задания дадут больше суммарных баллов.
Частые вопросы про задание 16
Как вычислить F(n) в задании 16 ЕГЭ по информатике?
Раскрути рекурсию от базы вручную: выпиши F(1), F(2), F(3) и так далее до нужного n. Ошибки почти всегда в числе переходов, а не в арифметике.
Что такое базовый случай рекурсии?
Это значение функции, которое возвращается без вызова самой себя, например F(0) = 1. Именно с базы начинается раскрутка всех остальных значений.
Что делать, если рекурсия ветвящаяся, как F(n) = F(n-1) + F(n-2)?
Заполняй таблицу значений по порядку: F(1), F(2), F(3) и так далее до нужного номера. Каждое значение считай один раз и переиспользуй — дерево вызовов быстро разрастается.