Рекурсивные функции: чтение и счёт по формулам
Задание 16 · Билет 1 · ЕГЭ по информатике
Условие
Алгоритм вычисления функций и , где — целое число, задан соотношениями:
Разбор задачи
Задание 16 ЕГЭ по информатике — это рекурсия: функция задана через саму себя, и нужно посчитать её значение при большом аргументе.
Функция задана двумя частями: базой (когда вызова самой себя нет и значение считается сразу) и рекурсивным шагом (вызов себя с меньшим аргументом). Небольшой аргумент раскрывают вручную, чтобы увидеть закономерность, а значение большого считают по числу шагов до базы или короткой программой.
Что важно знать
- Задание базового уровня — оценивается в 1 балл
- У рекурсии всегда есть база — иначе она не остановилась бы
- Каждый шаг приближает аргумент к базе
- Большой аргумент не раскрывают вручную: считают число шагов до базы
План решения
- Выпишите отдельно базу и рекурсивный шаг
- Подставьте нужный аргумент и определите, какая строчка подходит
- Проследите, как аргумент уменьшается до базы
- Посчитайте число шагов до базы и значение на базе
- Соберите ответ обратным ходом — или посчитайте таблицу короткой программой
- Проверьте ответ на маленьком аргументе
Потренируйся на рекурсии: найди базу и рекурсивный шаг и посчитай значение функции — от разминки до формата экзамена.
Решение
Теория с нуля: что нужно знать
• если → первая строчка: (сразу ответ);
• если → вторая строчка: (рекурсивный шаг).
делает один вызов . При его вычислении снова смотрим на аргумент и выбираем подходящую строчку; из второй появляется новый вызов с меньшим аргументом — и так до базы. Пример: .
Теперь посмотрим, как использует , на примере :
База (базовый случай) — случай, когда функция НЕ вызывает себя, а сразу возвращает значение: здесь это при . Без базы рекурсия не остановилась бы никогда.
Рекурсивный шаг — случай, когда функция вызывает себя с меньшим аргументом: . Каждый вызов «расходует» аргумент, пока тот не попадёт в базу.
Шаг равен , а вычитание 2 не меняет чётность. Поэтому спуск из чётного аргумента закончится на чётной границе, из нечётного — на нечётной. Смотрим на базу:
• из нечётного числа придём к 9: ;
• из чётного числа придём к 10, но — это ещё не база! (один лишний шаг).
Проверка на чётность нужна не вместо правила «», а чтобы понять, к какой границе базы приведёт цепочка шагов .
Решение
открыто шагов: 4 из 4Проверка
Типовые ошибки и проверка
- Путают аргумент: считают , а не .
- Неверная база: и — их нельзя путать ( — потому что и база ).
- Ошибаются на единицу в числе шагов — проверяйте число шагов на маленьких числах.
- Забывают умножить на 2 и прибавить 8 в формуле .
- Проверка: подставьте небольшой аргумент и прогоните вручную по определениям, сверьте с формулой.
Режимы
Сейчас открыт режим обучения: теория, разбор и ответ видны. Скоро появится режим проверки — только условие и поле ответа, без подсказок.
Практикум Все задания Режим проверки — скоро