Пробный урок
📘 ЕГЭ по информатике 2027 · задание 23 из 27

Задание 23 ЕГЭ по информатике: Алгоритмические задачи на графах

Что проверяет задание 23, сколько баллов оно приносит и сколько времени на него закладывать — и 3 примера в формате ФИПИ с подробным решением и ответом.

Уровень
повышенный
Максимум
1 балл
Время
~12 минут
Компьютер
нужен (специальное ПО)

Примеры задания 23 с решениями

Сначала попробуйте решить сами, затем откройте решение и сверьте ответ

Пример 1

Исполнитель преобразует число на экране. У исполнителя есть три команды: 1. Прибавить 1 2. Прибавить 3 3. Умножить на 2 Программа для исполнителя — это последовательность команд. Траектория вычислений — последовательность результатов выполнения всех команд программы. Сколько существует программ, для которых при исходном числе 2 результатом является число 20, и при этом траектория вычислений содержит число 10 и не содержит числа 15?
Показать решение и ответ
1. Траектория обязательно проходит через 10 — считаем отдельно пути 2 → 10 и 10 → 20 и перемножаем. 2. Число 15 запрещено — путь, попавший в 15, не считаем. 3. Число путей из a в b: если a > b или a = 15 — 0 путей, если a = b — 1 путь, иначе сумма путей после каждой из трёх команд.
def f(a, b):                       # сколько программ переводят a в b
    if a > b or a == 15:           # перелетели цель или попали в запретное 15 — путь не годится
        return 0                   # таких программ нет
    if a == b:                     # дошли до цели
        return 1                   # ровно одна программа — пустая
    return f(a + 1, b) + f(a + 3, b) + f(a * 2, b)   # пробуем все три команды и складываем

print(f(2, 10) * f(10, 20))       # через 10: пути до 10 × пути от 10 до 20 = 351

Ответ: 351

Пример 2

Исполнитель преобразует число на экране. У исполнителя три команды: 1. Прибавить 2 2. Умножить на 2 3. Прибавить 3 Сколько существует программ, для которых при исходном числе 3 результатом является число 25, и при этом траектория вычислений содержит число 11 и не содержит числа 17?
Показать решение и ответ
1. Считаем пути 3 → 11 и 11 → 25 и перемножаем; путь через 17 не считаем.
def f(a, b):                       # сколько программ переводят a в b
    if a > b or a == 17:           # перелетели цель или попали в запретное 17
        return 0                   # путь не годится
    if a == b:                     # дошли до цели
        return 1                   # одна программа
    return f(a + 2, b) + f(a * 2, b) + f(a + 3, b)   # три команды

print(f(3, 11) * f(11, 25))       # через 11: пути до 11 × пути от 11 до 25 = 84

Ответ: 84

Пример 3

Исполнитель преобразует число на экране. У исполнителя две команды: 1. Прибавить 1 2. Умножить на 3 Сколько существует программ, для которых при исходном числе 2 результатом является число 50, и при этом траектория вычислений не содержит чисел 14 и 26?
Показать решение и ответ
1. Обязательной точки нет — считаем пути 2 → 50 сразу, запрещая 14 и 26.
def f(a, b):                       # сколько программ переводят a в b
    if a > b or a in (14, 26):     # перелетели цель или попали в запретное число
        return 0                   # путь не годится
    if a == b:                     # дошли до цели
        return 1                   # одна программа
    return f(a + 1, b) + f(a * 3, b)   # две команды

print(f(2, 50))                   # 19

Ответ: 19

Не получается задание 23? Разберём на пробном уроке

Бесплатно покажем, как решать задание 23 и похожие, определим пробелы и составим план подготовки к ЕГЭ.

Записаться бесплатно

Все задания ЕГЭ по информатике

Структура экзамена, баллы и темы — на странице программы ЕГЭ по информатике