Твой ответ неверный, к сожалению.
В этом задании нам предлагается выяснить, сколько двоек было в начальной строке, если после применения данной программы мы получили строку, содержащую 40 единиц и 64 двойки.
Исполнитель Редактор производит две команды: заменить (v, w) и нашлось (v). Команда заменить (v, w) заменяет первое слева вхождение цепочки v на цепочку w. Команда нашлось (v) проверяет, встречается ли цепочка v в строке исполнителя Редактор.
Начальная строка начиналась с нуля, а далее содержала только единицы и двойки. Рассмотрим последовательность команд, которые исполнитель Редактор применит к начальной строке.
- Проверяем, находится ли в строке цепочка "01". Найдено, поэтому заменяем "01" на "2202". Теперь строка выглядит так: "22020110...". В этой строке цепочка "01" более не встречается.
- Проверяем, находится ли в строке цепочка "02". Найдено, поэтому заменяем "02" на "10". Теперь строка выглядит так: "22011010...".
- Проверяем, находится ли в строке цепочка "01". Найдено, поэтому заменяем "01" на "2202". Теперь строка выглядит так: "2202222010...". В этой строке цепочка "01" более не встречается.
- Проверяем, находится ли в строке цепочка "02". Найдено, поэтому заменяем "02" на "10". Теперь строка выглядит так: "2202221010...".
- ...
Так мы будем продолжать, пока в строке остаются цепочки "01" и "02". В результате мы получим строку, содержащую 40 единиц и 64 двойки.
Теперь давайте решим эту задачу в обратном порядке. Пусть в исходной строке было a двоек. После первого прохода программы в строке останется a двоек и a-1 единица. После второго прохода программы в строке останется a двоек, a-3 единицы и a-2 двойки. После третьего прохода программы строка будет содержать a-5 двоек, a-7 единиц и a-6 двоек, и так далее.
Когда количество двоек в строке станет менее 64, мы перестанем заменять цепочки "01" и "02". Таким образом, уравнение, задающее количество двоек в строке, имеет вид a - 1 - 2 - 3 - ... - k < 64, где k - номер шага алгоритма, на котором количество двоек в строке стало меньше 64. Решив это уравнение, мы найдем, что k = 8.
Теперь мы можем найти количество двоек в исходной строке: a - 1 - 2 - ... - 8 = a - 36 = 64. Отсюда получаем a = 100. Значит, в исходной строке было 100 двоек.
Проверь мой ответ лайком или дизлайком.
