Решение: Преобразование строки Редактором
Исполнитель Редактор получает на вход строку из 180 цифр, содержащую по 60 цифр 4, 6 и 8, расположенных в произвольном порядке. Команда «заменить (v, w)» заменяет в строке первое слева вхождение цепочки цифр v на цепочку w. Команда «нашлось (v)» проверяет, встречается ли цепочка v в строке. Если вхождения нет, команда замены строку не изменяет.
Программа выполняется до тех пор, пока в строке встречается хотя бы одна из цепочек 46, 84 или 86:
НАЧАЛО
ПОКА нашлось (46) ИЛИ нашлось (84) ИЛИ нашлось (86)
ЕСЛИ нашлось (46)
ТО заменить (46, 64)
КОНЕЦ ЕСЛИ
ЕСЛИ нашлось (84)
ТО заменить (84, 48)
КОНЕЦ ЕСЛИ
ЕСЛИ нашлось (86)
ТО заменить (86, 68)
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ
Определите, какие цифры будут находиться на 25-м, 75-м и 150-м местах строки, получившейся после выполнения программы. Цифры в строке нумеруются слева направо, начиная с 1.
Решение по шагам
4 шагаКаждая замена переставляет две соседние цифры, не изменяя количество цифр каждого вида.
$$46\to64,\quad84\to48,\quad86\to68$$После завершения работы программы в строке не может остаться ни одной пары 46, 84 или 86. Эти замены упорядочивают цифры так, что все цифры 6 находятся левее цифр 4, а все цифры 4 — левее цифр 8.
$$6<4<8$$Так как исходно имеется по 60 цифр каждого вида, итоговая строка состоит из 60 цифр 6, затем 60 цифр 4 и затем 60 цифр 8.
$$6^{60}4^{60}8^{60}$$Место 25 попадает в первый блок, место 75 — во второй, место 150 — в третий.
$$25\to6,\quad75\to4,\quad150\to8$$Где здесь ошибаются
Неверно считать, что замены изменяют количество цифр.
Не учитывать, что каждая замена переставляет соседние цифры.
Ошибиться при определении границ блоков по 60 цифр.