Задание 12. Выполнение алгоритмов исполнителей с фиксированным набором команд. ЕГЭ 2026 по информатике
Средний процент выполнения: 49%
Ответом к заданию 12 по информатике может быть цифра (число) или слово.
Алгоритм решения задания 12:
- Внимательно прочитай описание исполнителя и список его команд.
- Зафиксируй начальное состояние (позиция, направление, значения параметров) из условия.
- Выполняй команды алгоритма строго по порядку.
- После каждой команды фиксируй новое состояние исполнителя.
- Если команда зависит от условия, проверяй условие по текущему состоянию и выполняй нужную ветвь.
- Доведи выполнение до конца алгоритма и получи итоговое состояние.
- Ответь на вопрос задания по итоговому состоянию.
- Запиши ответ в требуемом формате.
Подпишись на суперполезные материалы
Задачи для практики
Задача 1
Изменения ЕГЭ-2026
Исполнитель МТ представляет собой читающую и записывающую головку, которая может перемещаться вдоль бесконечной горизонтальной ленты, разделённой на равные ячейки. В каждой ячейке находится ровно один символ из алфавита исполнителя (A = {a0, a1, …, an–1}), включая специальный пустой символ λ.
Время работы исполнителя делится на дискретные такты (шаги). На каждом такте головка МТ находится в одном из множества допустимых состояний (Q = {q0, q1, …, qn–1}. В начальный момент времени головка находится в начальном состоянии q0.
На каждом такте головка обозревает одну ячейку ленты, называемую текущей ячейкой. За один такт головка может:
- Переместиться в соседнюю ячейку слева или справа, не меняя символ в текущей ячейке;
- Или заменить символ в текущей ячейке без перемещения;
- После выполнения действия перейти в новое состояние или остаться в прежнем.
Программа работы исполнителя задаётся в табличном виде. В первой строке перечислены все возможные символы ленты, в первой колонке – возможные состояния головки. На пересечении строки и столбца указана команда, которую выполняет МТ, когда головка обозревает данный символ, находясь в данном состоянии. Пустая клетка означает невозможную комбинацию.
Каждая команда имеет три элемента, разделённых запятой:
- Символ, записываемый в текущую ячейку;
- Действие: L (сдвиг влево), R (сдвиг вправо), N (без сдвига), S (завершение работы);
- Новое состояние головки после выполнения команды.
Например, команда 0, L, q3 означает: в текущую ячейку записать символ «0», сдвинуться в соседнюю ячейку слева и перейти в состояние q3.
Выполните задание:
В начальный момент времени на ленте подряд записана последовательность из 600 символов, включающая только 0 и 1. Остальные ячейки заполнены λ. Головка расположена на левой границе последовательности (не на пустом символе) и находится в состоянии q1.
Программа работы исполнителя
| λ | 0 | 1 | |
|---|---|---|---|
| q1 | λ, S, q1 | 1, R, q1 | 0, R, q2 |
| q2 | λ, S, q2 | 0, L, q1 | 1, R, q2 |
После выполнения программы на ленте образовалась последовательность вида: сначала идут нули, потом единицы. Левая группа нулей и правая группа единиц не могут быть пустыми.
Вопрос:определите максимально возможное количество нулей в исходной последовательности
Решение
Ответ: максимально возможное количество нулей в исходной последовательности — 598.
Краткое обоснование
- По таблице переходов: в начале головка находится на первом символе в состоянии
q1. - В состоянии
q1при чтении1машина записывает0и переходит вq2, а вq2идёт вправо по единицам, возвращаясь вq1только при встрече0. При чтении0вq1он записывает1и идёт вправо. - Чтобы по окончании получилась строка вида
0^a1^bс ненулевыми обеими группами, необходимо иметь по крайней мере две единицы в исходной строке. При одной единице (или нуле единиц) получить непустую правую группу единиц невозможно. - Следовательно максимум нулей = длина 600 минус минимум необходимых единиц 2, то есть
600 − 2 = 598. Пример, достигающий этого: исходная строка11+0повторённый 598 раз; после работы машины получается строка с ровно одним нулём слева и 599 единицами справа.
Задача 2
Исполнитель МТ представляет собой читающую и записывающую головку, которая может перемещаться вдоль бесконечной горизонтальной ленты, разделённой на равные ячейки. В каждой ячейке находится ровно один символ из алфавита исполнителя (A = {a0, a1, …, an–1}), включая специальный пустой символ λ.
Время работы исполнителя делится на дискретные такты (шаги). На каждом такте головка МТ находится в одном из множества допустимых состояний (Q = {q0, q1, …, qn–1}. В начальный момент времени головка находится в начальном состоянии q0.
На каждом такте головка обозревает одну ячейку ленты, называемую текущей ячейкой. За один такт головка может:
- Переместиться в соседнюю ячейку слева или справа, не меняя символ в текущей ячейке;
- Или заменить символ в текущей ячейке без перемещения;
- После выполнения действия перейти в новое состояние или остаться в прежнем.
Программа работы исполнителя задаётся в табличном виде. В первой строке перечислены все возможные символы ленты, в первой колонке – возможные состояния головки. На пересечении строки и столбца указана команда, которую выполняет МТ, когда головка обозревает данный символ, находясь в данном состоянии. Пустая клетка означает невозможную комбинацию.
Каждая команда имеет три элемента, разделённых запятой:
- Символ, записываемый в текущую ячейку;
- Действие: L (сдвиг влево), R (сдвиг вправо), N (без сдвига), S (завершение работы);
- Новое состояние головки после выполнения команды.
Например, команда 0, L, q3 означает: в текущую ячейку записать символ «0», сдвинуться в соседнюю ячейку слева и перейти в состояние q3.
Выполните задание:
На ленте в соседних ячейках записана последовательность из 120 нулей. Ячейки справа и слева от последовательности заполнены пустыми символами «λ». В начальный момент времени головка расположена в ближайшей ячейке справа от последовательности в состоянии q0.
Программа работы исполнителя
| λ | 1 | 0 | |
|---|---|---|---|
| q0 | λ, L, q1 | ||
| q1 | 1, L, q2 | 0, L, q3 | |
| q2 | λ, S, q2 | 0, L, q3 | 1, L, q2 |
| q3 | λ, S, q3 | 1, L, q2 | 0, L, q3 |
Определите число нулей на ленте после выполнения программы.