23 задание ЕГЭ информатика: как решать, код и таблица

Кому: выпускнику · Обновлено 2026-10-25

Раздел: Информатика · Тема: Разборы заданий по номерам · Задание 23

В задании № 23 нужно посчитать, сколько существует программ, которые переводят начальное число в конечное, часто с условием на траекторию: через число проходить обязательно или нельзя. Решается оно динамическим подсчётом: для каждого числа записываешь, сколькими способами до него можно дойти, и складываешь. Ниже шаблон решения руками, в Excel и на Python, типичные ошибки и способ проверки.

Решить задание в тренажёре

Что проверяет задание № 23

Задание относится к блоку анализа хода исполнения алгоритма и считается заданием высокого уровня. Ответ — одно целое число. Есть исполнитель с двумя-тремя командами (прибавь число, умножь на число и подобные), начальное число и конечное. Нужно найти количество разных программ, то есть последовательностей команд.

Две программы считаются разными, если различаются последовательностью команд, даже если промежуточные числа похожи. Траектория — это все числа, которые появляются на экране по ходу программы, включая начальное и конечное. Условия бывают такие: траектория содержит число A, траектория содержит A и B, траектория не содержит число C.

Состав команд и формулировки могут меняться от варианта к варианту: где-то встречаются команды, которые меняют цифру числа или переставляют цифры местами. Принцип остаётся прежним, меняется только то, как из одного числа получается другое. Актуальный формат и примеры смотри в демоверсии и кодификаторе на сайте ФИПИ (fipi.ru).

23 задание ЕГЭ по информатике: как решать, общий алгоритм

Идея: количество способов дойти до числа n равно сумме количеств способов дойти до тех чисел, из которых n получается одной командой. Это динамическое программирование, и оно работает одинаково руками, в таблице и в коде.

  • Выпиши команды и определи, из каких чисел можно прийти в n. Для команд «прибавь 1» и «умножь на 2» это n-1 и n/2 (если n чётно).
  • Для начального числа поставь 1: пустая программа — один способ дойти до него.
  • Иди от начального числа к конечному по возрастанию и для каждого n складывай значения предшественников.
  • Если число запрещено условием «не содержит», поставь для него 0 и не используй дальше.
  • Если траектория должна содержать число A, раздели задачу: способов дойти от начала до A умножь на число способов дойти от A до конца.
  • Если нужно пройти через A и B, перемножай три участка: начало → A, A → B, B → конец.

Пример задания из банка «Ранга»

Пример ниже — типичное условие с обязательным числом в траектории. Разбей его на два участка и проверь по шаблону выше, а потом сверься с ответом.

Условие. Исполнитель Калькулятор преобразует число на экране. У него две команды:
1) прибавь 1
2) умножь на 2

Сколько существует программ, которые преобразуют число 3 в число 40, причём траектория вычислений содержит число 19 (траектория — это последовательность всех чисел, появляющихся на экране)? В ответе запиши только целое число.

Показать ответ и решение
  1. Число программ считают по числам: в каждое число можно прийти прибавлением единицы или удвоением. Требование пройти через промежуточное число режет задачу на две независимые части, результаты которых перемножаются.
  2. Посчитай отдельно число путей от начального числа до промежуточного.

Ответ: 42

Решить похожие задания в тренажёре

23 задание ЕГЭ по информатике руками: таблица значений

Решение руками надёжно, когда числа небольшие. Нарисуй строку чисел от начального до конечного и под каждым запиши количество способов. Для примера с командами «прибавь 1» и «умножь на 2» значение для нечётного n равно значению для n-1, а для чётного — сумме значений для n-1 и n/2.

Если в условии есть обязательное число, считай два отдельных участка и не пытайся вести одну таблицу через всю траекторию. Второй участок начинай заново: в числе A снова ставь 1. Это самая частая точка ошибки: ученики продолжают складывать накопленные значения и получают завышенный ответ.

Для условия «не содержит» не вычёркивай число из строки, а ставь в него 0. Тогда формула для следующих чисел работает без исключений.

23 задание ЕГЭ по информатике на Python: код и шаблон

На компьютерном экзамене код обычно быстрее и надёжнее ручного счёта. Шаблон с рекурсией и кэшем для команд «прибавь 1» и «умножь на 2»:

from functools import lru_cache @lru_cache(None) def f(a, b): if a > b: return 0 if a == b: return 1 return f(a + 1, b) + f(a * 2, b) print(f(3, 19) * f(19, 40))

Здесь f(a, b) возвращает число программ из a в b. Если a превысило b, программа не подходит, если равно — найден один способ. Последняя строка реализует условие «траектория содержит 19»: произведение числа способов на двух участках.

Для условия «не содержит» добавь в начало функции проверку: если a равно запрещённому числу, верни 0. Для других команд (например, изменить цифру или поменять цифры местами) меняются только два последних слагаемых: на каждую команду приходится одно слагаемое f(новое_число, b). Следи, чтобы новое число не выходило за границу и рекурсия не уходила в бесконечность.

23 задание ЕГЭ по информатике в Excel

Таблица подходит, когда команд мало и числа идут подряд. В первом столбце запиши числа от начального до конечного, во втором — формулу количества способов. Для начального числа поставь 1. Для остальных строк сложи значения из строк, откуда можно прийти, с помощью ЕСЛИ и ЦЕЛОЕ: например, добавляй значение из строки n/2 только если n чётно.

Для запрещённого числа в ячейку вручную введи 0. Для обязательного числа сделай второй столбец, где в этом числе снова стоит 1, и перемножь итоги двух участков. Минус Excel — неудобство, когда числа перескакивают через большие промежутки: там рекурсия на Python проще.

Типичные ошибки и самопроверка

Проверь решение на маленьком примере, который можно пересчитать в уме: например, сколько программ ведёт из 1 в 4 с теми же командами. Если код выдаёт то же, что и ручной подсчёт, шаблон верен.

  • Забыл, что начальное число даёт 1, а не 0.
  • Не обнулил участок после обязательного числа и сложил значения вместо умножения участков.
  • Включил запрещённое число в траекторию или проверил его только в конце.
  • Не учёл, что умножение на 2 даёт только чётные числа, и взял n/2 для нечётного n.
  • Перепутал порядок: считал от конца к началу без смены формулы.
  • Не заметил, что конечное число совпадает с обязательным или запрещённым.

Частые вопросы

Как быстро решать 23 задание ЕГЭ по информатике?

Держи под рукой рекурсивный шаблон на Python и меняй в нём только команды и условия. Перед этим один раз разбери ручную таблицу, чтобы понимать, откуда берутся слагаемые. На экзамене проверь код на маленьком примере.

Что делать, если в условии «траектория не содержит» число?

Добавь в функцию проверку на запрещённое число и возвращай для него 0. Тогда любые пути через это число обнулятся сами. В ручной таблице просто поставь 0 в соответствующую клетку.

Что делать, если среди команд есть изменение цифры или перестановка цифр?

Формула остаётся той же: количество способов дойти до числа равно сумме по всем командам. Для каждой команды напиши, как получается новое число, и добавь вызов функции для него. Следи, чтобы число не выходило за границы условия.

Что нового в задании № 23 в текущем году?

Формат и формулировки уточняй в демоверсии и кодификаторе на сайте ФИПИ: там публикуют актуальные изменения. Не опирайся на пересказы, сравнивай с официальным документом.

Где потренироваться в таких заданиях?

Начни с заданий из открытых вариантов и банка заданий, а затем решай новые без подсказок. Можно взять тренажёр «Ранга» с проверкой ответа или пройти бесплатный тест и увидеть, где теряются ошибки.

Полезно по теме

Читать дальше

Все статьи «Ранг» о подготовке к экзаменам

Проверить себя в тренажёре

Открывается тренировочное задание в формате ЕГЭ: условие видно сразу, краткий ответ проверяется без регистрации.

Решить задание в тренажёре

Не уверен, что это вообще нужно? Бесплатный тест — 10 минут, без регистрации и без карты: сразу видно первичный балл

Материал — разъяснение «Ранг». Официальные правила экзамена, расписание, шкалы баллов и перечни заданий публикуют ФИПИ (fipi.ru) и Рособрнадзор (obrnadzor.gov.ru). Мы не обещаем конкретных баллов: результат зависит от твоей работы.