Учебник reknow · 11 класс

ЕГЭ: информатика: теория

17 тем — объяснения простым языком, формулы, рисунки и разобранные примеры. К каждой теме — тренажёр.

Информатика по всем классам →

Оглавление

  1. Задание 1 ЕГЭ по информатике: графы и таблицы
  2. Задание 2 ЕГЭ по информатике: таблицы истинности
  3. Задание 4 ЕГЭ по информатике: кодирование и декодирование
  4. Задание 5 ЕГЭ по информатике: формальное исполнение алгоритма
  5. Задание 6 ЕГЭ по информатике: результат работы алгоритма
  6. Задание 7 ЕГЭ по информатике: объём памяти — графика и звук
  7. Задание 8 ЕГЭ по информатике: измерение количества информации
  8. Задание 10 ЕГЭ по информатике: маска подсети
  9. Задание 11 ЕГЭ по информатике: информационный объём сообщения
  10. Задание 12 ЕГЭ по информатике: исполнитель Редактор
  11. Задание 13 ЕГЭ по информатике: анализ хода исполнения алгоритма
  12. Задание 14 ЕГЭ по информатике: позиционные системы счисления
  13. Задание 15 ЕГЭ по информатике: математическая логика
  14. Задание 19 ЕГЭ по информатике: анализ алгоритма игры
  15. Задание 20 ЕГЭ по информатике: выигрышная стратегия
  16. Задание 21 ЕГЭ по информатике: дерево игры
  17. Задание 23 ЕГЭ по информатике: алгоритмические задачи с графами

Задание 1 · ЕГЭ, информатика 2027

Задание 1 ЕГЭ по информатике: графы и таблицы

Потренироваться: задания по теме →

Простыми словами

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

Один объект описан дважды: схемой (граф) и таблицей (весовая матрица). Нумерация в них никак не связана — первая работа задания 1 наложить одно на другое.

Степень вершины — число дорог, выходящих из пункта. На схеме это число линий у кружка, в таблице — число заполненных клеток в строке.

Пример: схема и таблица

АГБВДЕ 322331
Схема; мелкие числа — степени вершин
П1П2П3П4П5П6
П1951
П26
П3934
П438
П5568
П614

Вопрос: найдите длину кратчайшего пути из А в Е.

Сопоставление по степеням

  1. Степени в таблице: П1 — 3, П2 — 1, П3 — 3, П4 — 2, П5 — 3, П6 — 2. На схеме: А, В, Д — 3; Б, Г — 2; Е — 1.
  2. Начинаем с уникальной степени: единственная вершина степени 1 — Е = П2. Её сосед Д = П5.
  3. Соседи Д на схеме — В, Г, Е; у П5 — П1, П4, П2. Степень 2 среди них только у П4 → Г = П4, тогда В = П1.
  4. Оставшиеся: А (степень 3) = П3, Б (степень 2) = П6. Проверка: А–Б есть — клетка П3–П6 заполнена ✓

Каждый вывод проверяйте по соседям: если А = П3, то у П3 должны быть соседи Б, В, Г, то есть П6, П1, П4 — так и есть.

Кратчайший путь по таблице

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

  1. А = 0: Б = 4, В = 9, Г = 3.
  2. Г (3): Д = . Б (4): В = — лучше 9.
  3. В (5): Д = — лучше 11.
  4. Д (10): Е = . Ответ: 16 (путь А–Б–В–Д–Е).

Где теряют балл: считают длину пути по схеме «на глаз», хотя числа есть только в таблице; забывают, что путь в обход может оказаться короче прямой дороги (А–В напрямую 9, а через Б — 5).

Различайте вершины по степеням их соседей: «вершина степени 3, у которой сосед степени 1» встречается один раз.

Задание 2 · ЕГЭ, информатика 2027

Задание 2 ЕГЭ по информатике: таблицы истинности

Потренироваться: задания по теме →

Простыми словами

Дан «пазл»: логическая функция и несколько строк её таблицы истинности, но подписи столбцов x, y, z стёрты. Нужно вернуть каждую подпись на место — так, чтобы все строки фрагмента согласовались с формулой.

Решение всегда одно: построить полную таблицу функции, отобрать строки с нужным значением и приложить к ним фрагмент.

Логические операции

ОперацияЗаписьКогдаPython
отрицаниеменяет значение на противоположноеnot A
конъюнкция (И)1 только когда оба равны 1A and B
дизъюнкция (ИЛИ)0 только когда оба равны 0A or B
импликация0 только при A <= B
эквиваленция1 при совпадении значенийA == B

, затем , затем , затем , затем . Скобки — раньше всего.

— обещание «если A, то B». Нарушено оно лишь в одном случае: A случилось (), а B нет (). Отсюда .

Разбор задания

. Фрагмент, все строки с :

???F
0111
0101
0001
  1. Когда ? Нужно , то есть , и . Подходящие : , , — нет только .
  2. Во всех строках . Столбец из одних нулей — только первый. Значит, первый — .
  3. Второй и третий — и . Во второй строке они равны и . Если бы второй был , получилось бы — запрещённая пара. Значит, второй — , третий — .
  4. Проверяем все строки: — все допустимы ✓. Ответ: zyx.
столб. 1столб. 2столб. 3 zyx
Ответ записывают буквами в порядке столбцов: zyx

Приёмы и ловушки

Ищите строку фрагмента с самым «редким» сочетанием значений или столбец, который везде одинаков: он сразу закрепляет одну-две переменные, остальные встают на место. Если во фрагменте есть пустые клетки, перебирайте их значения.

print('x y z')
for x in range(2):
    for y in range(2):
        for z in range(2):
            F = (x <= y) and (not z)
            if F:
                print(x, y, z)

Программа печатает все строки с — дальше остаётся приложить к ним фрагмент.

Где теряют балл: записывают буквы «как удобно», а не в порядке столбцов; проверяют соответствие только по одной строке фрагмента, хотя подходить должны все; забывают, что строки фрагмента идут не обязательно в том же порядке, что в полной таблице.

Задание 4 · ЕГЭ, информатика 2027

Задание 4 ЕГЭ по информатике: кодирование и декодирование

Потренироваться: задания по теме →

Простыми словами

Телефонные номера экстренных служб устроены так, что ни один не является началом другого: набрали 112 — сразу звонок, ждать продолжения не нужно. В кодировании это называется условием Фано, и задание 4 целиком на нём построено.

Обычно даны двоичные коды нескольких букв, и нужно подобрать кратчайший код для ещё одной буквы так, чтобы сообщения по-прежнему расшифровывались однозначно.

Условие Фано

Ни одно кодовое слово не является началом другого. Тогда сообщение декодируется однозначно, читая слева направо.

Ни одно слово не является окончанием другого. Тогда сообщение однозначно читается справа налево.

Каждого из условий достаточно для однозначного декодирования. Если в задаче не сказано иначе, проверяют прямое условие.

А — 0, Б — 01, В — 10. Запись — это «А В» () или «Б А» ()? Код А является началом кода Б — условие Фано нарушено.

Двоичное дерево кодов

Коды удобно представить ветвями дерева: 0 — влево, 1 — вправо. Занятое слово закрывает всё своё поддерево и весь путь к нему. Свободное слово — узел, который не лежит на пути к занятому и не находится под занятым.

0101010101 АВБГ ?? 0111000001100101
Занятые коды — фиолетовые; свободные места (жёлтые) — 001 и 101

Разбор: кратчайший код для новой буквы

А — 01, Б — 000, В — 11, Г — 100. Найдите кратчайший код для Д (если их несколько — с наименьшим числовым значением).

  1. Длина 1: «0» — начало 01 и 000; «1» — начало 11 и 100. Не годятся.
  2. Длина 2: 00 — начало 000; 01 и 11 заняты; 10 — начало 100. Не годятся.
  3. Длина 3: 000 занят; 001 — не начало ни одного кода, и ни один код (0, 00) не является его началом. Годится.
  4. Ответ: 001. (Подошло бы и 101, но .)

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

Где теряют балл: проверяют только одну сторону условия («моё слово не начало чужого») и забывают вторую; при нескольких подходящих словах берут не наименьшее.

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

Задание 5 · ЕГЭ, информатика 2027

Задание 5 ЕГЭ по информатике: формальное исполнение алгоритма

Потренироваться: задания по теме →

Простыми словами

Рецепт надо выполнять дословно: «добавить соль после варки» — значит после, а не до. Задание 5 — такой же «рецепт» для чисел: алгоритм описан словами, и его нужно выполнить буквально, без догадок о «смысле».

Почти всегда алгоритм работает с двоичной записью числа: приписать разряд, перевернуть, добавить бит по правилу чётности.

Типичный алгоритм

На вход подаётся натуральное . 1) Строится двоичная запись . 2) Справа дописывается остаток от деления суммы её цифр на 2. 3) Пункт 2 повторяется для новой записи. Полученная запись — двоичная запись числа .

N = 19 10011 100111 1001110 три единицынечётно → 14 единицы → 0шаг 2шаг 3: R = 78

После первого приписывания число единиц всегда становится чётным, поэтому второй дописанный бит — всегда 0. Значит, всегда чётно и или . Такие наблюдения помогают проверить ответ, но не заменяют аккуратного выполнения.

Разбор: наименьшее N, при котором R больше 77

  1. Оценка: , значит, около . Начнём проверку немного раньше.
  2. : единиц 2 → дописываем 0 → , единиц 2 → 0 → . Мало.
  3. : → → ✓
  4. Ответ: . (Если бы спрашивали «наименьшее , большее 77» — ответ 78.)

Где теряют балл: считают сумму цифр исходного числа, хотя шаг стоит после приписывания и сумма считается по текущей записи; ищут наименьшее , а записывают значение (или наоборот).

Надёжный способ — перебор

Не ищите закономерность наугад: прогоните алгоритм на числах подряд, начиная с наименьшего. Нужное значение обычно находится в первых десятках проверок; на компьютере это несколько строк.

for n in range(1, 1000):
    s = bin(n)[2:]                 # двоичная запись без '0b'
    for _ in range(2):
        s += str(s.count('1') % 2) # дописать остаток суммы цифр
    r = int(s, 2)                  # обратно в десятичную
    if r > 77:
        print(n, r)
        break

bin(n)[2:] — двоичная запись; int(s, 2) — число из двоичной строки; s[::-1] — перевернуть запись; s.count('1') — число единиц.

Порядок шагов менять нельзя. Читайте условие до конца: иногда правило зависит от чётности самого («если чётное, дописать 10, иначе 1»), и обе ветки надо запрограммировать точно.

Задание 6 · ЕГЭ, информатика 2027

Задание 6 ЕГЭ по информатике: результат работы алгоритма

Потренироваться: задания по теме →

Простыми словами

Программу не обязательно понимать «целиком». Достаточно стать компьютером: выполнять строку за строкой и записывать, чему равна каждая переменная. Такой способ называется трассировкой.

Таблица трассировки из двух-трёх столбцов решает почти любое задание этого номера: в строке — один проход цикла, в столбцах — значения переменных после него.

Операции, которые встречаются чаще всего

ЗаписьСмыслПример
a // bделение нацело
a % bостаток от деления
a / bобычное деление, результат дробный
range(a, b)числа — без range(1, 4): 1, 2, 3
range(a, b + 1)включает и , и range(1, 5): 1, 2, 3, 4

Цикл while n > 0: c += n % k; n //= k раскладывает по основанию : остаток — последняя цифра, деление нацело — «отбросить» её. В итоге — сумма цифр числа в -ичной системе.

Разбор: цикл while

n = 345
c = 0
while n > 0:
    c += n % 6
    n //= 6
print(c)
n = 345, c = 0 n > 0 ? да c += n % 6n //= 6 нет print(c)
Условие проверяется перед каждым проходом; при ложном — выход из цикла
Проходn % 6cn после //6
13357
2369
3391
41100 — выход

Программа выведет 10. Проверка через смысл: , сумма цифр ✓

Разбор: цикл for

s = 0
for i in range(1, 5):
    s = s * 2 + i
print(s)
  1. : .
  2. : .
  3. : .
  4. : . Значения 5 нет — range(1, 5) его не включает. Ответ: 26.

Конструкции вида x = x * a + i растут очень быстро — считайте по шагам на бумаге, а не «в уме». А на компьютерном ЕГЭ программу можно просто запустить.

Где теряют балл: забывают, что range(a, b) не включает ; путают / (дробь) и // (нацело); обрывают трассировку на шаг раньше выхода из цикла; печатают не ту переменную.

Задание 7 · ЕГЭ, информатика 2027

Задание 7 ЕГЭ по информатике: объём памяти — графика и звук

Потренироваться: задания по теме →

Простыми словами

Картинка на экране — мозаика из точек-пикселей, у каждой свой цвет. Звук в компьютере — длинный ряд замеров громкости. И в том, и в другом случае объём — это «сколько штук × сколько бит на штуку».

В задании 7 считают размер файла с рисунком или звукозаписью без сжатия.

Изображение

объём растрового изображения, бит

где и — ширина и высота в пикселях, — глубина цвета: сколько бит отводится на цвет одного пикселя.

— число цветов в палитре

Глубина бит даёт цветов. Наоборот, для цветов нужно наименьшее , при котором : для 100 цветов (), для 256 цветов .

Рисунок , 1 бит на пиксель. Размер в Кбайтах?

  1. бит.
  2. В байтах: ; в Кбайтах: .

Так же при 4 битах: Кбайт.

Звук

времягромкость замер = i бит
Звук записывают замерами через равные промежутки времени; каждый замер — число из бит
объём звукозаписи, бит

где — частота дискретизации (замеров в секунду, Гц; 16 кГц = 16 000 Гц), — разрядность (бит на один замер), — число каналов (моно — 1, стерео — 2, квадро — 4), — время в секундах.

Моно, 16 кГц, 32 бита, 64 секунды. Размер в Кбайтах?

  1. бит.
  2. байт; Кбайт.

Единицы и ловушки

; байт; байт. А вот «кило» в герцах — 1000: .

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

Где теряют балл: делят на 1000 вместо 1024; забывают умножить на число каналов; путают биты и байты в исходных данных; берут без округления вверх, когда — не степень двойки.

Задание 8 · ЕГЭ, информатика 2027

Задание 8 ЕГЭ по информатике: измерение количества информации

Потренироваться: задания по теме →

Простыми словами

Кодовый замок с 3 колёсиками по 10 цифр открывается одной из комбинаций. Задание 8 о том же: сколько разных «слов» можно составить из данных букв, если на них наложены условия.

Если на первое место можно поставить вариантов, на второе — и т. д., то всего вариантов . Когда на каждую из позиций можно поставить любую из букв:

— число разных букв, — длина слова

«Слово» здесь — любая последовательность букв, не обязательно осмысленная. Порядок букв важен: РСТ и ТСР — разные слова.

Ячейки: сколько вариантов на каждое место

23333 ××××= 162 Р или СР, С или Т
5-буквенные слова из Р, С, Т, которые не начинаются с Т:

Тот же ответ даёт вычитание: все слова минус начинающиеся с Т — .

Типовые надстройки

УсловиеКак считать
Первая буква закрепленасвободны позиций:
«Не начинается с X», или
Все буквы различны — множителей
Ровно одна буква Xвыбрать её позицию ( способов) × остальные места без X:
Хотя бы одна Xвсе минус слова совсем без X:

4-буквенные слова из А, В, Г, Д, Е, где А ровно одна: позиция А — 4 способа, остальные 3 места — из 4 букв: .

Запрет соседства

«Нет двух К подряд» считают по шагам. Пусть — число допустимых слов длины , оканчивающихся на К, — на любую другую из букв.

К можно приписать только после «не-К»; любую другую букву — после чего угодно
  1. : , .
  2. : , ; : , ; : , .
  3. : , ; : , .
  4. Ответ: .

На компьютерном ЕГЭ любое такое условие проверяется программой:

from itertools import product
cnt = 0
for w in product('КЛМНП', repeat=6):
    if 'КК' not in ''.join(w):
        cnt += 1
print(cnt)   # 13056

Где теряют балл: считают сочетания вместо размещений, забывая, что порядок букв важен; в «не начинается с X» вычитают не , а что-то другое; для «все буквы различны» используют .

Задание 10 · ЕГЭ, информатика 2027

Задание 10 ЕГЭ по информатике: маска подсети

Потренироваться: задания по теме →

Простыми словами

Почтовый адрес «г. Москва, ул. Ленина, д. 5, кв. 12» делится на две части: дом (общий для всех жильцов) и квартира. IP-адрес устроен так же: начало — адрес сети («дом»), конец — номер узла («квартира»). Где проходит граница, показывает маска.

IP-адрес — 4 байта (32 бита), записанные десятичными числами 0–255 через точку: 192.168.157.40. Маска — тоже 4 байта, но устроена жёстко: сначала идут только единицы, потом только нули. Единицы отмечают часть адреса сети, нули — номер узла. Число единиц называют длиной префикса.

Главные формулы

поразрядное «И»: 1 только там, где в обоих числах 1

Номер узла — то, что «отрезала» маска: .

— число единиц в маске

Из всех адресов сети два служебные: адрес самой сети (все биты узла — нули) и широковещательный (все биты узла — единицы). Узлам их не выдают.

Байт маски128192224240248252254255
Единиц слева12345678

Других значений у байта маски, кроме этих и 0, не бывает.

Разбор: адрес сети

IP 192.168.157.40, маска 255.255.240.0.

  1. Байты, где маска 255, переходят в адрес сети без изменений: 192.168. Где маска 0 — обнуляются: последний байт 0.
  2. В двоичный вид переводим только «смешанный» байт — третий: , .
  3. Поразрядное «И» даёт . Адрес сети: 192.168.144.0.
IP: 157маска: 240сеть: 144 100111011111000010010000
Под единицами маски бит IP сохраняется, под нулями — становится 0

Разбор: сколько адресов

IP 23.16.173.15, маска 255.255.248.0. Сколько адресов можно выдать узлам?

  1. Единиц в маске: ( — пять единиц).
  2. На номер узла остаётся бит: адресов.
  3. Минус два служебных: .

IP 165.254.56.151, маска 255.255.224.0: , , «И» — .

Если неизвестна сама маска, переберите длину префикса: модуль ipaddress — ip_network('23.16.173.15/21', strict=False) — сразу даёт адрес сети и число адресов.

Где теряют балл: забывают вычесть два служебных адреса (или вычитают, когда спрашивают про все адреса сети); переводят все четыре байта и путаются; принимают за маску число вида 255.255.100.0, которого не бывает.

Обратные задачи: маска по условию

В подсети нужно выдать не менее 14 адресов узлам. Наибольшее число единиц маски?

  1. Вместе со служебными нужно не меньше адресов.
  2. Наименьшая степень двойки, не меньшая 16, — : под узел уходят 4 нулевых разряда.
  3. Единиц в маске: .

IP 209.95.138.5, адрес сети 209.80.0.0. Второй байт маски?

  1. , байт сети .
  2. Маска — сначала единицы, потом нули. Единицы должны сохранить старшие биты , а следующий бит адреса (1) должен обнулиться — значит, единиц в байте ровно 4.
  3. Байт маски .

Задание 11 · ЕГЭ, информатика 2027

Задание 11 ЕГЭ по информатике: информационный объём сообщения

Потренироваться: задания по теме →

Простыми словами

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

Типичный сюжет: в системе хранятся пароли или номера, каждый символ кодируется минимальным одинаковым числом бит, каждая запись — минимальным целым числом байт. Найти объём всех записей (или обратное).

Бит на символ

— мощность алфавита, — наименьшее число бит на символ
Мощность до 23–45–89–1617–3233–6465–128129–256
Бит 12345678

Для 26 букв — 5 бит, для 30 — 5, для 33 — 6, для 64 — 6, для 26 букв и 10 цифр () — 6 бит.

Мощность алфавита — это сколько разных символов можно использовать, а не длина пароля. Если разрешены строчные и заглавные буквы, их считают отдельно.

Порядок вычислений

  1. Бит на символ: наименьшее , при котором .
  2. Бит на запись: число символов × .
  3. Байт на запись: делим на 8 и округляем вверх.
  4. Всего: байт на запись × число записей.
пароль: 15 × 6 = 90 бит = 11,25 байта 12-й байтотводится 12 байт
Неполный последний байт всё равно отводится целиком

Пароль — 15 символов из 26 латинских букв и 10 цифр. Каждый символ кодируется минимальным одинаковым числом бит, каждый пароль — минимальным целым числом байт. Сколько байт займут пароли 50 пользователей?

  1. : , значит, бит.
  2. На пароль: бит; → 12 байт.
  3. Всего: байт.

Порядок важен: если округлить в конце ( бит байта), ответ получится меньше истинного. Округляют на уровне одной записи.

Обратные задачи

Каждый символ кодируется 16 битами, сообщение заняло 800 байт: бит, символов.

Пароль занимает 12 байт (как выше), а на 40 пользователей с доп. сведениями ушло 1200 байт. На одного: байт, из них на доп. сведения байт.

Где теряют балл: округляют вниз; считают пробелы между полями, хотя в условии их нет (или наоборот, не считают, хотя они названы символами); путают число символов и мощность алфавита.

Задание 12 · ЕГЭ, информатика 2027

Задание 12 ЕГЭ по информатике: исполнитель Редактор

Потренироваться: задания по теме →

Простыми словами

Функция «Найти и заменить» в текстовом редакторе, но с одним отличием: Редактор меняет только первое найденное вхождение, а потом снова ищет с начала строки. Из-за этого цепочки «переезжают» по строке, и результат часто неочевиден.

заменить (v, w)Заменяет в строке первое (самое левое) вхождение цепочки v на цепочку w. Если v нет — строка не меняется.
нашлось (v)Проверяет, есть ли цепочка v в строке. Результат — «истина» или «ложь»; строка не меняется.

Как читать программу

НАЧАЛО
ПОКА нашлось (111)
    заменить (111, 2)
    заменить (222, 1)
КОНЕЦ ПОКА
КОНЕЦ

Тело цикла выполняется, пока условие истинно. Внутри обе команды выполняются по очереди на каждом проходе, даже если вторая ничего не находит.

1111111112111111221111 111 → 2; 222 нет111 → 2; 222 нет111 → 2 даёт 222; 222 → 1111 нет — конец
Строка из 9 единиц: розовым — первое вхождение, которое заменяется

Разбор: строка из 100 единиц

Ручная трассировка ста символов долгая. Есть два надёжных пути.

s = '1' * 100
while '111' in s:
    s = s.replace('111', '2', 1)   # 1 — только первое вхождение
    s = s.replace('222', '1', 1)
print(s)   # 21

Третий аргумент 1 у replace — ровно «первое вхождение», как у Редактора. Без него Python заменит все вхождения сразу — это другой исполнитель.

Припишем «вес»: символ 1 весит 1, символ 2 весит 3. Замена вес не меняет (), замена уменьшает его на 8. Значит, остаток веса при делении на 8 не меняется.

  1. Начальный вес , остаток .
  2. Цикл кончается, когда нет 111, а «222» уже убрано, — остаётся короткая строка с весом 4: например, «21» ().
  3. Программа подтверждает: 21; сумма цифр — 3.

Рабочий метод и ловушки

Прогоните программу на короткой строке (5–8 символов), потом на строке на один символ длиннее — и увидите правило. Почти всегда длина уменьшается на постоянную величину, а ответ определяет остаток от деления.

Замена « одинаковых → 1» укорачивает строку на за шаг, пока длина не станет меньше : итог определяется остатком от деления на . Замена вида «ab → bba» строку не укорачивает, а удлиняет: каждый символ a, проходя сквозь хвост, удваивает количество b.

Где теряют балл: заменяют все вхождения сразу вместо первого; путают порядок проверок в ЕСЛИ…ИНАЧЕ ЕСЛИ; обрывают цикл, когда «кажется, что дальше понятно».

Задание 13 · ЕГЭ, информатика 2027

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

Потренироваться: задания по теме →

Простыми словами

Исполнитель умеет две вещи — прибавить и умножить. Сколько разных программ переведут число A в число B? Перебирать программы долго; гораздо быстрее идти по числам от A к B и для каждого записывать, сколькими способами до него можно добраться.

Это тот же приём, что и подсчёт путей в графе: числа — вершины, команды — стрелки.

В 2027 году этот номер получил новую тему. Задания прошлых лет под номером 13 относились к маске подсети — не путайте источники.

Главная формула

число программ, приводящих из A в v

где — число программ из A в , — шаг команды «прибавь», — множитель команды «умножь». Второе слагаемое берётся, только если делится на нацело и частное не меньше A. База: ; для чисел меньше A — .

Почему так: последняя команда программы — либо «прибавь» (тогда до неё было ), либо «умножь» (тогда было ). Эти случаи не пересекаются, поэтому их количества складываются.

Разбор: из 2 в 12

Команды: 1) прибавь 1, 2) умножь на 2. Сколько программ переводят 2 в 12?

×2+1 21314252637385951071171210
Внизу — число , в ячейке — . В 12 ведут стрелки из 11 и из 6:
  1. , (3 нечётное — только +1).
  2. ; ; ; .
  3. ; ; ; .
  4. . Ответ: 10.

Обязательные и запрещённые числа

Траектория содержит CСчитаем A → C и C → B отдельно и перемножаем: каждая первая половина сочетается с каждой второй. Через 6: .
Траектория не содержит CСтавим и считаем дальше как обычно. Без 6: получится . Проверка: ✓
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(2, 12))             # 10
print(f(2, 6) * f(6, 12))   # через 6: 6

Рекурсия идёт от начала: из можно перейти в или . Для «не содержит C» добавьте строку if a == c: return 0.

Где теряют балл: берут слагаемое , когда не делится на или частное меньше A; для «содержит C» складывают вместо умножения; не обнуляют запрещённое число.

Задание 14 · ЕГЭ, информатика 2027

Задание 14 ЕГЭ по информатике: позиционные системы счисления

Потренироваться: задания по теме →

Простыми словами

В десятичной системе — единица и пять нулей, а — пять девяток. В любой системе с основанием происходит то же самое. На этом наблюдении строится всё задание 14: огромные числа вроде не надо вычислять — достаточно понять, как выглядит их запись.

число в системе с основанием — сумма цифр, умноженных на степени

где — основание, — цифры от до . Перевод из десятичной: делить на , выписывая остатки, и читать их снизу вверх.

Три главных факта

в системе с основанием — это единица и нулей. Сумма разных степеней — запись из единиц и нулей.

— это цифр . Поэтому при — это цифр , за которыми нулей.

2¹⁰10000000000− 2⁴10000=1111110000
: заём «съедает» хвост и оставляет цепочку единиц

, , . Одна восьмеричная цифра — ровно три двоичных разряда, шестнадцатеричная — четыре. Поэтому , .

Разбор заданий

Сколько единиц в двоичной записи ?

  1. — одна единица; — одна единица.
  2. — две единицы. Разряды не пересекаются (20, 7 и 1–0).
  3. Всего .

Сколько значащих нулей в шестнадцатеричной записи ?

  1. — цифра 2 и 11 нулей: .
  2. — 4 цифры без нулей.
  3. Сумма: — из 11 нулей четыре младших заняты цифрами FFE6, остаётся .
x = 8**15 + 4**8 - 26
print(hex(x)[2:].count('0'))   # 7
# для другой системы — делим в цикле:
n, b, zeros = x, 3, 0
while n > 0:
    zeros += (n % b == 0)
    n //= b
print(zeros)

Python работает с целыми числами любой длины, поэтому ответ можно получить напрямую.

Ловушки

Где теряют балл: считают «значащие нули», включая ведущий (его нет — запись числа начинается с ненулевой цифры); забывают про заём при вычитании и теряют цепочку цифр ; складывают степени, у которых совпадают разряды ( — разряд переносится).

«Степень — единица с нулями, минус — цепочка максимальных цифр». В двоичной максимальная цифра 1, в восьмеричной 7, в шестнадцатеричной F.

Задание 15 · ЕГЭ, информатика 2027

Задание 15 ЕГЭ по информатике: математическая логика

Потренироваться: задания по теме →

Простыми словами

Правило «если идёт дождь, я беру зонт» нарушается только в одном случае: дождь идёт, а зонта нет. Задание 15 — подобрать такой параметр , чтобы формула ни при одном не оказалась нарушенной.

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

импликация ложна только при ,

Задачи с отрезками

, . Наибольшая длина отрезка , при которой тождественно истинна?

  1. Формула ложна, когда , и .
  2. Чтобы такого не было, всё, что попало в , должно лежать в или в : .
  3. и не пересекаются, а — один отрезок, поэтому он целиком внутри (длина ) или внутри (длина ). Ответ: 13.
6172841 P, длина 11QA = Q, длина 13
обязан помещаться в

Если просят наименьшую длину, обычно должен, наоборот, покрывать какую-то часть прямой. Всегда начинайте с вопроса «когда формула ложна?».

Задачи с делимостью (ДЕЛ)

ДЕЛ — « делится на без остатка». Наименьшее , при котором ДЕЛДЕЛ ДЕЛ тождественно истинна?

  1. Ложна, когда кратно , но не кратно ни 30, ни 14.
  2. Возьмём : тогда само обязано делиться на 30 или на 14.
  3. Наименьшее такое — 14. Проверка: любое кратное 14 делится на 14 ✓

Формула с ДЕЛ зависит только от остатков, поэтому при проверке перебором достаточно одного полного периода — до НОК участвующих чисел.

Поразрядная конъюнкция

— поразрядное «И» двоичных записей. — «у есть хотя бы один общий единичный бит с ».

Наименьшее , при котором тождественно истинна.

  1. Ложна, когда , и .
  2. , . Раз у нет битов из 12, общий бит с 29 может быть только в разрядах или ().
  3. Чтобы любой такой пересекался с , в должны быть оба бита: .
def F(x, A):
    return (not (x & 29 != 0)) or (x & 12 != 0) or (x & A != 0)

for A in range(1, 1000):
    if all(F(x, A) for x in range(1, 1024)):
        print(A)   # 17
        break

Импликацию записывайте как (not P) or Q или P <= Q.

Где теряют балл: ищут «наименьшее», когда спрашивают наибольшее; проверяют формулу на нескольких удобных и считают это доказательством; для отрезков путают концы и длину ( имеет длину 11, а не 12).

Задание 19 · ЕГЭ, информатика 2027

Задание 19 ЕГЭ по информатике: анализ алгоритма игры

Потренироваться: задания по теме →

Простыми словами

Двое по очереди добавляют камни в кучу. Кто первым доведёт кучу до порога — победил. Задания 19–21 — одна игра и три вопроса про неё. В задании 19 нужно понять самое простое: из каких позиций можно выиграть одним ходом и из каких любой ход отдаёт победу сопернику.

Начальное число камней ; набор ходов (обычно «прибавить » и «умножить на »); порог : игра кончается, когда в куче становится или больше камней. Побеждает игрок, сделавший последний ход. Первым ходит Петя, вторым — Ваня.

Дальше разбираем пример: ходы +1 и ×2, игра кончается при камнях, .

Позиции разбираются от конца

W1 — выигрыш первым ходомИз позиции есть ход, сразу дающий или больше. Здесь: , то есть .
L1 — проигрыш при любом ходеМгновенной победы нет, а каждый ход отдаёт сопернику позицию W1. Здесь: (ходы в 15 и 28 — обе W1).
12345678910111213141516171819202122232425262728W1: выигрыш первым ходомL1
Ходы +1 и ×2, порог 29. Фиолетовые — W1, жёлтая — L1

Возьмите порог и посмотрите на самый «сильный» ход: ниже границы мгновенной победы нет. Для ×2: . Для «+2 или ×3» с порогом : .

Типовые вопросы задания 19

При каких ? — при всех из W1: от 15 до 28. Наименьшее — 15.

Найдите наименьшее . «Неудачный ход» — ход Пети, после которого Ваня может выиграть сразу, то есть ход в позицию W1.

  1. Нужно, чтобы хотя бы один ход Пети вёл в W1 (), а сам Петя не выигрывал сразу.
  2. Ход ×2: при . Ход +1: при .
  3. Наименьшее : Петя делает , Ваня — и выигрывает.

Это позиция L1: . Петя может сделать 15 или 28 — в обоих случаях Ваня удваивает кучу и побеждает.

Различайте «после неудачного хода Пети» (достаточно одного плохого хода — это не стратегия) и «при любом ходе Пети» (все ходы проигрывают).

Программа и ловушки

N = 29
def moves(s): return [s + 1, s * 2]

W1 = [s for s in range(1, N) if any(m >= N for m in moves(s))]
L1 = [s for s in range(1, N) if s not in W1
      and all(m in W1 for m in moves(s))]
print(W1, L1)   # 15..28, [14]

Где теряют балл: считают победителем того, кто «перешагнул» порог ходом соперника; забывают проверить оба хода; не учитывают, что ход, сразу выводящий за порог, — тоже ход, и он заканчивает игру.

Задание 20 · ЕГЭ, информатика 2027

Задание 20 ЕГЭ по информатике: выигрышная стратегия

Потренироваться: задания по теме →

Простыми словами

Стратегия — это не один удачный ход, а готовый ответ на любой ход соперника. Как в крестиках-ноликах: знаешь, что делать, как бы ни сыграл другой. Задание 20 спрашивает, при каких у Пети есть такая стратегия, приводящая к победе вторым ходом.

Игра та же, что в задании 19. Пример: ходы +1 и ×2, порог , . Уже известно: W1 — от 15 до 28 (победа одним ходом), L1 — (любой ход отдаёт победу).

Слои позиций

Мгновенной победы нет (позиция не W1), но есть ход в такую позицию, откуда каждый ответ соперника оставляет победу одним ходом. Проще: есть ход в L1.

Слово «каждый» — ключевое: достаточно одного спасительного ответа соперника, и стратегия разрушена.

12345678910111213141516171819202122232425262728W1L1W2W2
Из 13 (ход +1) и из 7 (ход ×2) Петя переводит кучу в 14 — позицию L1

Разбор: два наименьших S

Найдите два наименьших значения , при которых у Пети есть стратегия выиграть вторым ходом, но нет стратегии выиграть первым.

  1. Ищем ходы в L1 = {14}: ; .
  2. Проверяем, что это не W1: из 7 и 13 одним ходом до 29 не дойти ✓
  3. Проверяем стратегию для : Петя — 14; Ваня — 15 или 28; Петя удваивает: или , оба ✓
  4. Ответ: 7 13 (в порядке возрастания, через пробел).
SХод ПетиОтвет ВаниХод ПетиИтог
7×2 → 14+1 → 15×2 → 30победа
×2 → 28×2 → 56 (или +1 → 29)победа
13+1 → 14+1 → 15×2 → 30победа
×2 → 28+1 → 29победа

Программа и ловушки

N = 29
def moves(s): return [s + 1, s * 2]
W1 = {s for s in range(1, N) if any(m >= N for m in moves(s))}
L1 = {s for s in range(1, N) if s not in W1 and all(m in W1 for m in moves(s))}
W2 = [s for s in range(1, N) if s not in W1 and any(m in L1 for m in moves(s))]
print(W2)   # [7, 13]

Если просят два наименьших значения , перебирайте позиции снизу вверх и выписывайте первые два подходящих. Если подходящих больше двух — вы, скорее всего, приняли за L1 позицию, у которой есть спасительный ход.

Где теряют балл: проверяют только «удобный» ответ соперника; включают в ответ позиции W1 («но нет стратегии выиграть первым ходом»); записывают одно число вместо двух.

Задание 21 · ЕГЭ, информатика 2027

Задание 21 ЕГЭ по информатике: дерево игры

Потренироваться: задания по теме →

Простыми словами

Задание 21 — самое длинное из игровой тройки. Нужно рассмотреть все ходы Пети и для каждого — лучший ответ Вани, на две пары ходов вперёд. Ветвей немного (обычно 4–8), и ошибаются не от сложности, а от пропущенной ветки.

Пример тот же: ходы +1 и ×2, порог 29. Из заданий 19–20: W1 — от 15 до 28, L1 — 14, W2 — 7 и 13.

Что значит формулировка

«У Вани есть стратегия, позволяющая выиграть первым или вторым ходом при любой игре Пети, но нет стратегии, которая позволит ему гарантированно выиграть первым ходом». Это два условия одновременно:

1. При любом ходе ПетиВаня выигрывает не позднее своего второго хода: каждый ход Пети ведёт в W1 или W2.
2. Хотя бы один ход Петине даёт Ване выиграть сразу: хотя бы один ход ведёт именно в W2, а не в W1.

Позиция, где все ходы ведут в W1 или W2, и хотя бы один — в W2, называется L2. Для нашей игры L2 = {12}: из 12 Петя может пойти в 13 (W2) или в 24 (W1).

Дерево игры для S = 12

121324141528 ×2 → 48: Ваня выиграл 1-м ходом×2 → 30+1 → 29 +1×2+1+1×2Ваня выиграл 2-м ходом
Жёлтые — позиции, где ходит Петя, фиолетовые — где ходит Ваня. Все ветви заканчиваются победой Вани
  1. Петя: 12 → 24. Ваня удваивает: 48 ≥ 29 — победа первым ходом.
  2. Петя: 12 → 13. Ваня не может выиграть сразу (), поэтому ходит +1 → 14 (L1).
  3. Из 14 Петя может сделать 15 или 28 — обе позиции W1, Ваня выигрывает вторым ходом.
  4. Условие 1 выполнено (выигрыш при любом ходе), условие 2 тоже (после 13 сразу не выиграть). Ответ: 12.

Таблица разбора и программа

Удобная схема — таблица из четырёх столбцов: позиция, ход Пети, ответ Вани, итог. Кандидатов проверяйте снизу вверх; если подходящих несколько, а спрашивают наименьшее — берите первое.

N = 29
def moves(s): return [s + 1, s * 2]
def win(s, k):          # игрок, который ходит из s, выигрывает не позднее k-го хода
    if k == 0: return False
    return any(m >= N or lose(m, k - 1) for m in moves(s))
def lose(s, k):         # каждый ход из s ведёт в позицию, выигрышную для соперника за k
    return all(m < N and win(m, k) for m in moves(s))

print([s for s in range(1, N) if lose(s, 2) and not lose(s, 1)])   # [12]

Где теряют балл: проверяют только одно из двух условий и берут первое попавшееся (например, 14 — там Ваня выигрывает первым ходом при любой игре, это L1, а не L2); пропускают ход Пети, который сразу выводит за порог (тогда выигрывает Петя, и позиция не подходит).

Задание 23 · ЕГЭ, информатика 2027

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

Потренироваться: задания по теме →

Простыми словами

Схема дорог с односторонним движением. Сколько разных маршрутов из А в И? Какой из них самый короткий? Обе задачи решаются одним движением по схеме слева направо: для каждого пункта записываем число — сумму (для числа путей) или минимум (для длины пути).

Тематика номера 23 изменена в 2027 году. Раньше под этим номером был анализ хода исполнения алгоритма — материалы прошлых лет по номеру 23 к нынешней теме отношения не имеют.

Количество путей

сумма по всем вершинам , из которых стрелка ведёт в

где — число путей из начальной вершины в . В начальную вершину — один «пустой» путь: . Считать нужно по порядку, чтобы к моменту обработки вершины все её предшественники были уже посчитаны.

АБВГДЕЖЗИ 1111246410
Числа у вершин — пути из А. Например,
  1. (в них ведёт только А).
  2. ; .
  3. ; ; .

Е нельзя считать раньше Д: из Д в Е есть стрелка. Ищите «вертикальные» стрелки внутри одного столбца — их чаще всего пропускают.

Через вершину и в обход

Проходящих через ЕПосчитайте отдельно две части и перемножьте: А→Е — 4 пути, Е→И — 2 (через Ж и через З). Итого .
Не проходящих через ЕПоложите и пересчитайте: , , . Проверка: ✓

«Через Е и Ж» — три множителя: А→Е, Е→Ж, Ж→И. «Не через Е и не через Ж» — обнулить обе вершины.

Кратчайший путь

То же движение по вершинам, но вместо суммы — минимум:

— длина кратчайшего пути до , — длина дуги из в

Дуги: А→Б 3, А→В 1, В→Б 1, Б→Г 2, В→Г 5. Кратчайший путь из А в Г?

  1. ; .
  2. .
  3. — путь А→В→Б→Г.

Где теряют балл: двигаются против стрелки; при «через вершину» складывают части вместо умножения; для кратчайшего пути берут прямую дугу, не проверив обход.