На ленте в соседних ячейках записана последовательность из 1000 символов, включающая только нули, единицы и двойки.
Ячейки слева и справа от последовательности заполнены пустыми символами «\(\lambda\)».
В начальный момент времени головка расположена в ближайшей ячейке слева от последовательности.
Программа работы исполнителя:
| \(\lambda\) | \(0\) | \(1\) | \(2\) | |
|---|---|---|---|---|
| \(q_0\) | \(\lambda, R, q_1\) | |||
| \(q_1\) | \(\lambda, S, q_1\) | \(1, R, q_1\) | \(2, R, q_1\) | \(0, R, q_1\) |
Известно, что количество цифр 2 в конечной строке было в 4 раза меньше, чем количество цифр 2 в исходной строке, а сумма значений в исходной строке больше суммы значений в конечной строке на 380.
Какое количество цифр 1 было в исходной строке?
| λ | 0 | 1 | 2 | |
|---|---|---|---|---|
| q0 | λ, R, q1 | |||
| q1 | λ, S, q1 | 1, R, q1 | 2, R, q1 | 0, R, q1 |
Исполнитель МТ представляет собой читающую и записывающую головку, которая может передвигаться вдоль бесконечной горизонтальной ленты, разделённой на равные ячейки.
В каждой ячейке находится ровно один символ из алфавита исполнителя (множество символов \(A = \{a_0, a_1, \ldots, a_{n–1}\}),\) включая специальный пустой символ \(a_0.\)
Время работы исполнителя делится на дискретные такты (шаги).
На каждом такте головка МТ находится в одном из множества допустимых состояний \(Q~=~\{q_0, q_1, \ldots, q_{n–1}\}\).
В начальный момент времени головка находится в начальном состоянии \(q_0\).
На каждом такте головка обозревает одну ячейку ленты, называемую текущей ячейкой.
За один такт головка исполнителя может переместиться в ячейку справа или слева от текущей, не меняя находящийся в ней символ, или заменить символ в текущей ячейке без сдвига в соседнюю ячейку.
После каждого такта головка переходит в новое состояние или остаётся в прежнем состоянии.
Программа работы исполнителя МТ задаётся в табличном виде.
| \(a_0\) | \(a_1\) | \(\ldots\) | \(a_{n-1}\) | |
|---|---|---|---|---|
| \(q_0\) | команда | команда | \(\ldots\) | команда |
| \(q_1\) | команда | команда | \(\ldots\) | команда |
| \(\ldots\) | \(\ldots\) | \(\ldots\) | \(\ldots\) | \(\ldots\) |
| \(q_{n-1}\) | команда | команда | \(\ldots\) | команда |
В первой строке перечислены все возможные символы в текущей ячейке ленты, в первом столбце — возможные состояния головки.
На пересечении \(i\)-й строки и \(j\)-го столбца находится команда, которую выполняет МТ, когда головка обозревает \(j\)-й символ, находясь в \(i\)-м состоянии.
Если пара «символ — состояние» невозможна, то клетка для команды остаётся пустой.
Каждая команда состоит из трёх элементов, разделённых запятыми.
Первый элемент — записываемый в текущую ячейку символ алфавита (может совпадать с тем, который там уже записан).
Второй элемент — один из четырёх символов «\(L\)», «\(R\)», «\(N\)», «\(S\)».
Символы «\(L\)» и «\(R\)» означают сдвиг в левую или правую ячейки соответственно, «\(N\)» — отсутствие сдвига, «\(S\)» — завершение работы исполнителя МТ после выполнения текущей команды.
Сдвиг происходит после записи символа в текущую ячейку.
Третий элемент — новое состояние головки после выполнения команды.
Например, команда \(0, L, q_3\) выполняется следующим образом: в текущую ячейку записывается символ «\(0\)», затем головка сдвигается в соседнюю слева ячейку и переходит в состояние \(q_3\).
Приведём пример выполнения программы, заданной таблично.
| \(\lambda\) | Z | |
|---|---|---|
| \(q_0\) | \(\lambda, L, q_0\) | \(X, L, q_1\) |
| \(q_1\) | \(\lambda, S, q_1\) | \(X, L, q_1\) |
Она заменяет на ленте все символы «\(Z\)» на «\(X\)» и останавливает исполнителя в первой ячейке слева от последовательности символов «\(X\)».
Возможное начальное состояние исполнителя:
Конечное состояние исполнителя после завершения выполнения программы:
Выполните задание. На ленте в соседних ячейках записана последовательность из 1000 символов, включающая только нули, единицы и двойки.
Ячейки слева и справа от последовательности заполнены пустыми символами «\(\lambda\)».
В начальный момент времени головка расположена в ближайшей ячейке слева от последовательности.
Программа работы исполнителя:
| \(\lambda\) | \(0\) | \(1\) | \(2\) | |
|---|---|---|---|---|
| \(q_0\) | \(\lambda, R, q_1\) | |||
| \(q_1\) | \(\lambda, S, q_1\) | \(1, R, q_1\) | \(2, R, q_1\) | \(0, R, q_1\) |
Известно, что количество цифр 2 в конечной строке было в 4 раза меньше, чем количество цифр 2 в исходной строке, а сумма значений в исходной строке больше суммы значений в конечной строке на 380.
Какое количество цифр 1 было в исходной строке?
| λ | 0 | 1 | 2 | |
|---|---|---|---|---|
| q0 | λ, R, q1 | |||
| q1 | λ, S, q1 | 1, R, q1 | 2, R, q1 | 0, R, q1 |
Время решения
00:00.00
Нажмите «Пуск», когда начнёте решать
Пробел — пуск и пауза
Поверните телефон
Горизонтальный режим удобнее для таблицы и Python-кода