Шешімі: Преобразование строки Редактором
Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Команда «заменить (v, w)» заменяет в строке первое слева вхождение цепочки v на цепочку w. Команда «нашлось (v)» проверяет, встречается ли цепочка v в строке.
Цикл «ПОКА условие последовательность команд КОНЕЦ ПОКА» выполняется, пока условие истинно. В конструкции «ЕСЛИ условие ТО команда1 ИНАЧЕ команда2 КОНЕЦ ЕСЛИ» выполняется команда1, если условие истинно, и команда2 — если условие ложно.
Какая строка получится в результате применения программы к строке, состоящей из 84 идущих подряд цифр 1?
ПОКА нашлось (1111) ИЛИ нашлось (8888)
ЕСЛИ нашлось (1111)
ТО заменить (1111, 888)
ИНАЧЕ заменить (8888, 8)
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
Шешім по шагам
4 қадамСтрока из 84 единиц разбивается на 21 группы по четыре единицы. Каждая группа 1111 заменяется на 888.
$$84 \div 4 = 21$$После первого этапа получается жол из 21 восьмёрки.
$$1111^{21} \to 888^{21}$$Пока в строке встречается 8888, первая такая цепочка заменяется на 8. Длина строки уменьшается на 3 при каждой замене.
$$21 - 6 \cdot 3 = 3$$В строке из трёх восьмёрок уже нет ни 1111, ни 8888, поэтому цикл завершается.
$$888$$Где здесь ошибаются
Считать, что после замены 1111 на 888 все последующие замены выполняются по тому же правилу.
Забыть, что замена 8888 на 8 уменьшает длину строки на 3 символа.
Остановить выполнение программы до проверки отсутствия цепочки 8888.