Исполнитель МТ представляет собой читающую и записывающую головку, которая может передвигаться вдоль бесконечной горизонтальной ленты, разделённой на равные ячейки. В каждой ячейке находится ровно один символ из алфавита исполнителя, включая специальный пустой символ λ.
Время работы исполнителя делится на дискретные такты — шаги. На каждом такте головка находится в одном из допустимых состояний q0, q1, … . В начальный момент головка находится в состоянии q0.
Головка обозревает одну ячейку ленты — текущую ячейку. За один такт исполнитель записывает в неё указанный символ, после чего может сдвинуться в соседнюю ячейку и перейти в указанное состояние либо завершить работу. Записываемый символ может совпадать с уже находящимся в ячейке.
Программа задаётся таблицей. В первой строке перечислены символы алфавита, в первом столбце — состояния головки. В клетке на пересечении строки состояния и столбца символа находится выполняемая команда. Если сочетание символа и состояния при работе программы невозможно, клетка остаётся пустой.
Каждая команда состоит из трёх элементов, разделённых запятыми:
- символ, записываемый в текущую ячейку;
- направление: L — сдвиг на одну ячейку влево, R — сдвиг на одну ячейку вправо, S — завершение работы после записи символа без сдвига;
- состояние, в которое переходит головка.
Например, команда X, L, q2 означает: записать X в текущую ячейку, сдвинуться в соседнюю слева ячейку и перейти в состояние q2. Запись символа производится до сдвига.
Пример выполнения программы
Пусть на ленте подряд записаны три символа Z, остальные ячейки пусты, головка находится на первой пустой ячейке справа от слова ZZZ в состоянии q0. Для этой иллюстрации используется следующая программа:
| Состояние |
λ |
Z |
| q0 |
λ, L, q0 |
X, L, q1 |
| q1 |
λ, S, q1 |
X, L, q1 |
Начальное расположение ленты и головки:
Лента и головка после остановки:
Головка перемещается влево, заменяет все Z на X и останавливается на первой пустой ячейке слева от слова XXX. Пример поясняет правила чтения таблицы и не является программой основного задания.
Выполните задание
На ленте в соседних ячейках записано двоичное представление числа 1733 без ведущих нулей. Все остальные ячейки заполнены пустым символом λ. В начальный момент головка находится в состоянии q0 в ближайшей пустой ячейке справа от записи числа.
Программа работы исполнителя:
| Состояние |
λ |
0 |
1 |
| q0 |
λ, L, q1 |
|
|
| q1 |
λ, S, q1 |
1, L, q1 |
0, L, q1 |
Определите число, двоичная запись которого получится на ленте после завершения программы. Ведущие нули, если они появились, не влияют на значение числа. В ответе запишите число в десятичной системе счисления.