Символьный цикл

> Вы когда-нибудь смотрели на логотип на заставке и надеялись, что он отскочит точно в угол? Это занимает целую вечность, ровно как и ожидание идеального момента для последовательности символов в этом модуле.
>
>

**Символьный цикл** *(англ. Symbol Cycle)* — модовый обычный модуль. Содержит дисплеи, на экранах которых отображаются самые разнообразные символы, постоянно циклически переключаясь, экран с номером текущего цикла, который постоянно увеличивается, а также большой переключатель. Для обезвреживания модуля необходимо определить периодичность, с которой меняются символы на экранах, после чего вычислить, какими были бы эти символы в определённом цикле.

Модуль достаточно сложен для сапёра и для эксперта: труден как в описании быстро переключающихся символов, так и в вычислениях, связанных с номерами циклов. Не требует никакой информации о корпусе бомбы.

## Руководство

* Модуль имеет два экрана с символами, переключатель вверху и числовой дисплей внизу. Экраны меняются синхронно, но с разной периодичностью. Цифровой дисплей внизу показывает текущий номер цикла (шага), который постоянно увеличивается.
* Каждый экран может переключаться между двумя, тремя, четырьмя или пятью символами. Не нажимайте на экраны в этот момент, так как это вызовет ошибку.
* Определите **периодичность**, с которой меняются символы на экранах, соотнося это с **номером текущего цикла**. Используйте для этого признаки делимости чисел:

**Признаки делимости чисел**
* **Делимость на 2:** число делится на 2, если последняя цифра числа чётная (0, 2, 4, 6, 8).
* **Делимость на З:** число делится на 3, если сумма всех цифр числа делится на 3.
	+ *(например, 576 делится 3, так как 5 + 7 + 6 = 18 делится на 3)*
* **Делимость на 4:** число делится на 4, если две последние цифры — «00», или если они образуют цифру, которая делится на 4.
	+ *(например, 2100 делится на 4, так как в конце стоят два нуля)*
	+ *(число 324 тоже делится на 4, так как последние цифры образуют число 24, которое делится на 4)*
* **Делимость на 5:** число делится на 5, если последняя цифра числа 0 или 5.

* Когда будете готовы, нажмите переключатель. Экраны перестанут циклически повторяться — остановятся, и будут показывать два случайных символа, а номер цикла на дисплее изменится на случайное большое число.
	+ Теперь модуль переходит случайным образом в одно из двух состояний: либо в состояние **поиска символов**, либо в состояние **поиска цикла** (также называемых в рамках данного модуля выдуманными словами как «Ретротрансфазный» и «Антеродиаметрический»). Решите это состояние, как описано ниже.
	+ После этого снова нажмите на переключатель, чтобы отправить свой ответ. Если ответ неправильный, модуль сбросится, выставив новые символы и потенциально перейдя в другое состояние.

**Состояние поиска символов (Ретротрансфазное)*** В этом состоянии нажатие на экраны меняет их символы.
* Измените символы на те, которые были бы в цикле, номер которого отображается на дисплее.
* Обратите внимание, что порядок, в котором символы циклически повторяются при нажатии на экраны, может не совпадать с порядком, в котором они циклически повторялись ранее. Теперь они могут даже включать дополнительные ложные символы-приманки.
**Состояние поиска цикла (Антеродиаметрическое)*** В этом состоянии нажатие на экраны меняет число на дисплее. Один из экранов увеличивает число, другой уменьшает его.
* Измените число на номер любого цикла (близкого к тому, что отображается на дисплее), на котором символы были бы такими, как показано на экранах.

## Советы по обезвреживанию

Первым делом, решая модуль, необходимо понять, какие символы присутствуют на обоих экранах, а также вычислить периодичность, с которой они меняются.

Задача для сапёра:

1. Назвать эксперту все символы отдельно с левого и отдельно с правого экрана, которые тот должен записывать себе. Сильно долго не думайте над названиями символов, они могут быть самыми разнообразными и странными — говорите первое, что приходит в голову.
2. Далее нужно посчитать количество символов отдельно в обоих последовательностях. После чего дождаться цикла, номер которого будет делиться нацело на это количество (отдельно дождитесь нужного цикла для левого экрана, и отдельно для правого), и назвать символ, который в это время будет на экране. Признаки делимости вам в этом помогут. Это нужно для того, чтобы узнать, какие символы стояли в последовательностях первыми, на нулевом шаге.
3. После того, как вы это сделаете, можно нажимать переключатель. Предварительно также запомните немного все символы, которые у вас были — если модуль перейдёт в состояние поиска символов, то помните, что там могут быть ложные символы-приманки.

Далее, задача эксперта — используя признаки делимости и калькулятор, найти остатки от деления чисел, чтобы правильно выставить символы на экранах или число на дисплее. Для начала поделите текущий номер цикла на число, записанное ранее — количество символов в последовательности на левом/правом экране. Если остаток равен 0, значит на текущем шаге символ на экране будет таким же, каким был на нулевом шаге. Точно так же и для других остатков — например, если он равен 1, значит символ на экране будет таким же, каким был на первом шаге, и так далее. Если модуль перешёл в состояние поиска символов, для для эксперта всё куда проще; если же модуль перешёл в состояние поиска цикла, то задача сложнее: необходимо подогнать остатки от деления обоих последовательностей — с левого и правого экранов, к нужному числу.

## Галерея

В данном модуле присутствует гигантское разнообразие символов, всего их 2255 штук. Ниже представлены некоторые из них:

## Примечания

1. ↑ Все символы из исходного кода — GitHub.