Информатика. ЕГЭ
Задания для подготовки
Задачи разных лет из реальных экзаменов, демо-вариантов, сборников задач и других источников
Задание 12. Информатика. ЕГЭ 2026. Крылов. Вариант 1
- Просмотры: 2498
- Изменено: 28 ноября 2025
На ленте в соседних ячейках записана последовательность из \(520\) символов, включающая только нули и единицы. Ячейки справа и слева от последовательности заполнены пустыми символами «\(\lambda\)». В начальный момент времени головка расположена в ближайшей ячейке справа от последовательности.
Программа работы исполнителя:
| \(\lambda\) | \(1\) | \(0\) | |
| \(q_0\) | \(\lambda , \, L, \, q_1\) | ||
| \(q_1\) | \(\lambda , \, S, \, q_1\) | \(0, \, S, \, q_1\) | \(1, \, L, \, q_1\) |
После выполнения программы на ленте осталось ровно \(125\) нулей. Определите максимально возможное число нулей в исходной последовательности.
Решение:
Если все \(520\) символов в исходной строке будут нулями, то после завершения работы исполнителя на ленте не останется ни одного нуля. Поэтому, хотя бы одна единица должна присутствовать на ленте. Действительно, если исходная строка будет вида $$\lambda \underbrace{00 \ldots 0}_{124} 1 \underbrace{00 \ldots 0}_{395} \lambda , $$ то после выполнения программы на ленте останется \(125\) нулей. Для проверки напишем программу:
Python
com = {'l': {'q0': 'l,L,q1', 'q1': 'l,S,q1'},
'1': {'q1': '0,S,q1'},
'0': {'q1': '1,L,q1'}}
step = {'L': -1, 'R': 1, 'S': 0}
# s = ['l'] + ['0'] * 520 + ['l']
s = ['l'] + ['0'] * 124 + ['1'] + ['0'] * (520 - 125) + ['l']
print('Нулей в исходной строке', s.count('0'))
p = len(s) - 1
state = 'q0'
ch, act, st = com[s[p]][state].split(',')
s[p] = ch
state = st
p += step[act]
while act != 'S':
ch, act, st = com[s[p]][state].split(',')
s[p] = ch
state = st
p += step[act]
print('Нулей в конечной строке', s.count('0'))
Ответ: \(519\)
Обсуждение задания
Здесь пока нет ни одного комментария. Будьте первым!


