Найти в Дзене
InformaticsEasy AI

Информатика. Задание 12. Демоверсия ЕГЭ 2026. Машина Тьюринга. Мое решение.

Здравствуйте. Давно думал (как увидел) как сделать это задание. Но не было времени. Сегодня нашел время и написал небольшую (имхо) программу для решений этих задач. На первый взгляд кажется сложновато, но применив к нескольким задачам вроде ))) работает. В предверии дня программиста ))). Итак, что нам потребуется. Первое это словарь для движений указателя. Я его сделал по простому (для чего я его сделал? чтобы не проверять постоянно куда двигаемся). Почему в кавычках? Потому что я решил использовать eval (хотя это несерьезно, но задачу выполняет). Дальше что нужно - это прописать таблицу. Я замутил ее в виде словаря кортежей с указанием действий. Надеюсь разберетесь ))). Теперь сама функция, которая будет вызываться рекурсивно, пока не достигнем СТОПА. Ну и в итоге сама программа, которая запускает процесс. Почему я поставил эти значения? Потому что я запускал несколько раз программу с разными начальными данными (брал всего 3) и понял, что при движении влево и нахождении 1 мы изменяем
Оглавление

Здравствуйте. Давно думал (как увидел) как сделать это задание. Но не было времени. Сегодня нашел время и написал небольшую (имхо) программу для решений этих задач. На первый взгляд кажется сложновато, но применив к нескольким задачам вроде ))) работает.

В предверии дня программиста ))).

Задача из демоверсии.

Итак, что нам потребуется. Первое это словарь для движений указателя. Я его сделал по простому (для чего я его сделал? чтобы не проверять постоянно куда двигаемся).

-2

Почему в кавычках? Потому что я решил использовать eval (хотя это несерьезно, но задачу выполняет).

Дальше что нужно - это прописать таблицу. Я замутил ее в виде словаря кортежей с указанием действий. Надеюсь разберетесь ))).

-3

Теперь сама функция, которая будет вызываться рекурсивно, пока не достигнем СТОПА.

-4

Ну и в итоге сама программа, которая запускает процесс.

-5

Почему я поставил эти значения? Потому что я запускал несколько раз программу с разными начальными данными (брал всего 3) и понял, что при движении влево и нахождении 1 мы изменяем ее на 0 и останавливаемся.

Задача с сайта Полякова.

№ 8299 - И. Карпачёв.

На ленте исполнителя МТ в соседних ячейках записана последовательность из 1000 символов, включающая 155 нулей, 237 единиц, 128 двоек и 480 троек, расположенных в произвольном порядке. Ячейки справа и слева от последовательности заполнены пустыми символами «λ». В начальный момент времени головка расположена в ближайшей ячейке слева от последовательности. Программа для исполнителя:

-6

Команды движения каретки: L – влево, R – вправо, N – нет перемещения, S – стоп. Определите количество цифр 2 в последовательности, полученной после выполнения программы.

Полный код решения:

-7

Фраза из условия "расположенных в произвольном порядке" не играет роли. Потому как это выясняется после запусков нескольких вариантов набора цифр 0,1,2,3.

Примечание.

Чтобы анализировать берите небольшие строки. Для последней задачи я делал вот такую строку:

-8

Получал такой результат:

-9

Видно, что все нули превращаются в двойки. Значит ответ будет количество 0 + количество 2. Итого 155+128 = 283.

Как-то так.

Злобные комментарии не пишите, я очень расстраиваюсь.