Информатика. ЕГЭ
Задания для подготовки
Задачи разных лет из реальных экзаменов, демо-вариантов, сборников задач и других источников
Задание 12. Информатика. ЕГЭ 2026. Статград. 23.10.2025
- Просмотры: 1841
- Изменено: 23 октября 2025
На ленте в соседних ячейках записана последовательность из \(1000\) символов, включающая только нули и единицы. Ячейки справа и слева от последовательности заполнены пустыми символами «\(\lambda\)». В начальный момент времени головка расположена в ближайшей ячейке справа от последовательности.
Программа работы исполнителя:
| \(\lambda\) | \(1\) | \(0\) | |
| \(q_0\) | \(\lambda , \, L, \, q_1\) | ||
| \(q_1\) | \(\lambda , \, S, \, q_1\) | \(0, \, S, \, q_1\) | \(1, \, L, \, q_1\) |
После выполнения программы на ленте осталось ровно \(605\) нуля. Определите минимально возможное число нулей в исходной последовательности.
Решение:
Алгоритм остановится на первой единице, превратив её в ноль. И после этого в строке должно быть ещё \(604\) нуля. Значит, минимально возможное число нулей в исходной строке равно \(604.\)
Проверяем программно
Python
s = ['l'] + ['1'] * 395 + ['0']*604 + ['1'] + ['l']
print(f"Количество нулей в начальной строке: {s.count('0')}")
p = len(s) - 1
state='q0'
table = {'l': {'q0': 'l,L,q1', 'q1': 'l,S,q1'},
'0': {'q1': '1,L,q1'},
'1': {'q1': '0,S,q1'}}
step = {'L': 1, 'R': -1, 'S': 0}
s[p], m, state = table[s[p]][state].split(',')
while m != 'S':
p -= step[m]
s[p], m, state = table[s[p]][state].split(',')
print(f"Количество нулей в конечной строке: {s.count('0')}")
Ответ: \(604\)
Обсуждение задания
Здесь пока нет ни одного комментария. Будьте первым!


