Функции и рекурсия на ЕГЭ по информатике: как сдать без репетитора
Если ты гуглишь «функции и рекурсия как сдать» или «дешёвый репетитор ЕГЭ informatics», ты по адресу. На ЕГЭ по информатике функции и рекурсия — это не просто скучная теория, а реальные задачи, где можно потерять баллы, если не знать пару трюков. Я расскажу, что именно проверяют, как сэкономить время и где обычно все сливаются. И да, обойдётся дешевле пиццы в месяц.
Без карты, без кредитки. Выбери персонажа — учи голосом, побеждай в баттлах.
Что реально проверяют на ЕГЭ по теме «Функции и рекурсия»
На ЕГЭ по информатике функции и рекурсия встречаются в заданиях 12 (базовый уровень) и 16 (повышенный). В 12-м обычно просят написать функцию, которая что-то считает — например, количество цифр или сумму элементов. В 16-м — рекурсивная функция, где нужно найти количество вызовов или результат выполнения. Без воды: тебе нужно уметь:
- Писать простые функции с параметрами и return.
- Понимать, как работают локальные и глобальные переменные.
- Анализировать рекурсию: считать глубину, количество вызовов, результат.
- Отличать рекурсию от цикла и знать, когда рекурсия ломает программу (Stack Overflow).
Никаких сложных алгоритмов — только база. Но база, на которой спотыкаются 30% выпускников.
Задание 12. Напишите функцию count_digits(n), которая возвращает количество цифр в натуральном числе n. Используйте рекурсию.
def count_digits(n):
if n < 10:
return 1
else:
return 1 + count_digits(n // 10)
print(count_digits(12345)) # 5
Задание 16. Определите, сколько раз вызовется функция F(n) при вычислении F(5), если F(n) = F(n-1) + F(n-2) для n > 1, F(0)=1, F(1)=1.
F(0) и F(1) — базовые случаи, не вызывают новые вызовы. Для n>=2 — два вызова. Строим дерево:
F(5) -> F(4) и F(3)
F(4) -> F(3) и F(2)
F(3) -> F(2) и F(1)
F(2) -> F(1) и F(0)
Считаем: F(5):1, F(4):1, F(3):2, F(2):3, F(1):5, F(0):3. Итого 1+1+2+3+5+3=15 вызовов.
Топ-3 шортката, которые экономят время на экзамене
1. **Запомни шаблон рекурсивной функции.** Если в задаче просят рекурсию, почти всегда есть база (if) и рекурсивный шаг (return ...). Напиши заготовку в черновике: def f(n): if n == 0: return ... else: return ... + f(n-1). Это сэкономит 2 минуты.
2. **Используй print для отладки.** В 12-м задании можно написать функцию и вывести результат — если он совпадает с ожидаемым, всё ок. Не трать время на ручной подсчёт.
3. **Рисуй дерево вызовов для рекурсии.** В 16-м задании проще нарисовать дерево, чем считать в уме. На листочке — быстро и наглядно. Обычно хватает 4-5 уровней.
Где обычно сливаются и как этого избежать
**Ошибка 1: Бесконечная рекурсия.** Забыли базовый случай или неправильно изменили параметр. Пример: def f(n): return f(n-1) — без условия выхода. Программа упадёт с RecursionError. Как избежать: всегда пиши if, который останавливает рекурсию.
**Ошибка 2: Путаница с глобальными переменными.** Если внутри функции меняешь глобальную переменную без global, Python создаст локальную. В ЕГЭ это редко, но в задании 12 могут попросить исправить код. Совет: используй только локальные переменные в функциях.
**Ошибка 3: Неправильный подсчёт вызовов.** В 16-м часто считают только уникальные вызовы, а нужно все. Например, F(3) вызывается дважды — считаем оба. Как избежать: рисуй дерево и отмечай каждый вызов.
Конкретный пример разбора задачи уровня ЕГЭ
Разберём задание 16 из демоверсии 2024 (аналог). Условие: Алгоритм вычисления функции F(n) задан следующими соотношениями:
F(n) = 1 при n = 1
F(n) = F(n-1) + n при n > 1
Чему равно значение F(5)?
Решение:
1. Понять, что это рекурсия с базой n=1.
2. Вычислить последовательно:
F(1) = 1
F(2) = F(1) + 2 = 1 + 2 = 3
F(3) = F(2) + 3 = 3 + 3 = 6
F(4) = F(3) + 4 = 6 + 4 = 10
F(5) = F(4) + 5 = 10 + 5 = 15
3. Ответ: 15.
Шорткат: можно заметить, что F(n) = 1+2+...+n = n*(n+1)/2. Но на экзамене проще посчитать вручную.
F(1)=1; F(n)=F(n-1)+n при n>1. Найдите F(5).
F(1)=1
F(2)=1+2=3
F(3)=3+3=6
F(4)=6+4=10
F(5)=10+5=15
Ответ: 15
Как с этим помогает Наставник AI
Наставник AI — это не скучный учебник и не репетитор за 2000 в час. Ты выбираешь персонажа, который объяснит тему так, как тебе понятно. Хочешь — Витёк разложит по-братски: «Слышь, функция — это как заказ в маке: ты даёшь параметры (бургер, кола), а она возвращает результат (поднос). Рекурсия — когда заказ делает сам себя, пока не получит свой бургер». Хочешь — Анна Сергеевна по-советски: «Функция, молодой человек, это единица модульности! Запишите в тетрадь!». А хочешь — Криштиану: «Как Месси на тренировке: повторяй упражнение, пока не получишь результат. Рекурсия — это повторение, пока не достигнешь цели».
Ты говоришь голосом, а он отвечает голосом своего персонажа. Если не понял — он задаёт наводящие вопросы, а не даёт готовый ответ. Плюс камера: сфоткал задачу — он разбирает её голосом. И всё это стоит 995 рублей в месяц за все 12 предметов. Одна пицца, Карл! А репетитор берёт 2000 за час.
Цена: 995₽ за месяц всех 12 предметов = одна пицца
Сравни сам: репетитор по информатике — 2000 рублей за час. Занятие раз в неделю — 8000 в месяц. А Наставник AI — 995 рублей за месяц доступа ко всем 12 предметам: математика, русский, физика, информатика и т.д. Это как подписка на пиццу, только полезнее. И на старте скидка 50% — фиксируется навсегда. То есть ты платишь ~500 рублей в месяц, если успеешь. Бесплатный пробный урок — без карты, просто попробуй.
Частые вопросы
Без карты, без кредитки. Выбери персонажа — учи голосом, побеждай в баттлах.