Умение исполнить алгоритм для конкретного исполнителя с фиксированным набором команд · 25 заданий
- Задание №12№12
Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочк…
Анализ алгоритмов и исполнители
- Задание №12№12
Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочк…
Анализ алгоритмов и исполнители
- Задание №12№12
Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочк…
Анализ алгоритмов и исполнители
- Задание №12№12
Исполнитель Редактор получает на вход строку цифр и преобразовывает ее. Редактор может выполнить две команды. В обеих командах v и w обозначают цепочк…
Анализ алгоритмов и исполнители
- Задание №12№12
Исполнитель Редактор получает на вход строку цифр и преобразовывает ее. Редактор может выполнить две команды. В обеих командах v и w обозначают цепочк…
Анализ алгоритмов и исполнители
- Задание №12№12
Исполнитель Редактор получает на вход строку цифр и преобразовывает ее. Редактор может выполнить две команды. В обеих командах v и w обозначают цепочк…
Анализ алгоритмов и исполнители
- Задание №12№12
Исполнитель Редактор получает на вход строку цифр и преобразовывает ее. Редактор может выполнить две команды. В обеих командах v и w обозначают цепочк…
Анализ алгоритмов и исполнители
- Задание №12№12
Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочк…
Анализ алгоритмов и исполнители
- Задание №12№12
Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочк…
Анализ алгоритмов и исполнители
- Задание №12№12
Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочк…
Анализ алгоритмов и исполнители
- Задание №12№12
Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочк…
Анализ алгоритмов и исполнители
- Задание №12№12
Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочк…
Анализ алгоритмов и исполнители
Исполнитель Редактор получает на вход строку цифр и преобразовывает ее. Редактор может выполнить две команды. В обеих командах v и w обозначают цепочки цифр.
A) заменить (v, w).
Эта команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Например, выполнение команды заменить (111, 27) преобразует строку 05111150 в строку 0527150. Если в строке нет вхождений цепочки v, то выполнение команды заменить (v, w) не меняет эту строку.
Б) нашлось (v).
Эта команда проверяет, встречается ли цепочка v в строке исполнителя Редактор. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь». Строка исполнителя при этом не изменяется.
Цикл
ПОКА условие
последовательность команд
КОНЕЦ ПОКА
означает, что последовательность команд выполняется, пока условие истинно.
В конструкции
ЕСЛИ условие
ТО команда 1
ИНАЧЕ команда 2
КОНЕЦ ЕСЛИ
выполняется команда 1 (если условие истинно) или команда 2 (если условие ложно).
Какая строка получится в результате применения приведённой ниже программы к строке, состоящей из 2022 идущих подряд цифр 1? В ответе запишите полученную строку.
НАЧАЛО
ПОКА нашлось (11) ИЛИ нашлось (555)
ЕСЛИ нашлось (11)
ТО заменить (11,555)
ИНАЧЕ заменить (555,5)
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ
Правильный ответ
5
Пояснение
Решение:
Команда заменить(v, w) — это s.replace(v, w, 1) (меняется только первое слева вхождение), команда нашлось(v) — это проверка v in s. Значит исполнителя можно точно смоделировать на Python.
Приоритет у замены (11, 555): пока в строке есть хотя бы две подряд идущие единицы, работает только она. Из 2022 единиц получается 2022:2=1011 групп «555», то есть 1011⋅3=3033 пятёрки, и ни одной единицы.
Дальше работает только замена (555, 5), каждое её выполнение уменьшает количество пятёрок на 2. Число 3033 нечётное, поэтому цепочка 3033→3031→…→3→1 заканчивается одной пятёркой (при одной пятёрке цепочка 555 уже не находится).
def zamenit(s, v, w):
return s.replace(v, w, 1) # первое слева вхождение
s = "1" * 2022
while "11" in s or "555" in s:
if "11" in s:
s = zamenit(s, "11", "555")
else:
s = zamenit(s, "555", "5")
print(s) # 5
Ответ: 5