Выполните задание.
На ленте в соседних ячейках записано двоичное представление числа 2048 без ведущих нулей. Ячейки справа и слева от последовательности заполнены пустыми символами «λ». В начальный момент времени головка расположена в ближайшей справа к последовательности ячейке.
Программа работы исполнителя:
| λ | 0 | 1 | |
|---|---|---|---|
| q0 | λ, L, q1 | ||
| q1 | 1, L, q1 | 0, R, q2 | |
| q2 | 1, S, q2 | 0, R, q2 | 1, R, q2 |
Определите результат выполнения программы. В ответе запишите получившееся число в десятичной системе счисления.
Ответ:
Резервная волна ЕГЭ по информатике 22.06.2026 – задание №12
Решение:
|
1 2 3 4 5 |
print(bin(2048)[2:]) print(int('111111111111',2)) # 100000000000 # 011111111111 # 111111111111 |
100000000000
4095
Сначала переведём число 2048 в двоичную систему:
204810 = 1000000000002.
Головка находится в пустой ячейке справа от числа.
В состоянии q0 по пустому символу выполняется команда:
λ, L, q1
Головка перемещается влево и переходит в состояние q1.
В состоянии q1 каждый встреченный ноль заменяется на единицу, после чего головка движется влево:
0 → 1, L, q1
Поэтому все 11 нулей будут заменены единицами. Когда головка дойдёт до первой единицы, выполняется команда:
1 → 0, R, q2
Получаем:
011111111111
В состоянии q2 головка движется вправо, не изменяя нули и единицы. Дойдя до пустой ячейки, она записывает туда ещё одну единицу и останавливается.
Итоговая запись:
0111111111111
Ведущий ноль не влияет на значение числа, поэтому:
1111111111112 = 409510.
Проверить это можно с помощью Python:
|
1 2 |
print(bin(2048)[2:]) print(int('111111111111', 2)) |
Программа выведет:
|
1 2 |
100000000000 4095 |
Ответ: 4095