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