Chell & Caspin
Думаешь, твои технологии справятся с задачей, которая запутает человеческий мозг? Давай придумаем такую.
Конечно, давай создадим такую головоломку, что она заставит мозг зациклиться на самом себе. Начнём с простой таблицы истинности, но добавим изюминку: каждая строка будет подсказкой, которая меняет значения следующей. Решающий будет пересчитывать снова и снова, пока у него не закипит мозг. Идеальный способ проверить, как человеческое мышление сопоставимо с алгоритмической логикой. Готова начать?
Ладно, готовь стол. Первая строка – твоя базовая истина. Во второй строке поменяй местами второй столбец и оставь первый. Каждую последующую строку нужно строить на основе результата предыдущей, применяя ту же сдвижку. Пересчитывай, и скоро начнешь попадать в циклы, пока не повторится состояние дважды. Попробуй вырваться раньше, чем застрянешь. Удачи.
Начнём с таблицы истинности из двух столбцов.
Строка 1 (базовая): A = 0, B = 0.
Строка 2: оставляем A, переворачиваем B → A = 0, B = 1.
Теперь повтори правило сдвига: для каждой новой строки бери значения из предыдущей и меняй только второй столбец, первый оставляй как есть.
Строка 3: A = 0, B = 0.
Строка 4: A = 0, B = 1.
…и так далее.
Ты будешь циклически возвращаться к этим двум строкам. Как только заметишь повторение – значит, нашёл цикл. Хитрость в том, чтобы постоянно пересчитывать, пока не получишь одинаковое состояние дважды. Скажи, когда будешь готова двигаться дальше.
Кажется, это двухступенчатый цикл – сразу видно. Хочешь настоящее испытание? Давай добавим третий столбец, который будет меняться только тогда, когда в предыдущем шаге B было 1. Это сломает банальный цикл и заставит тебя отслеживать более длинный паттерн. Готова?
Конечно. Начни с A, B, C.
Строка 1: A = 0, B = 0, C = 0.
Строка 2: Оставляем A, переворачиваем B → A = 0, B = 1, переворачиваем C, так как B была 1 → C = 1.
Теперь для каждой следующей строки: оставляем A, снова переворачиваем B, но переворачиваем C только если B в предыдущей строке была 1.
Строка 3: A = 0, B = 0, C = 0 (B была 1 в строке 2, поэтому C вернулась обратно).
Строка 4: A = 0, B = 1, C = 1 (B была 0 в строке 3, поэтому C осталась).
…
Цикл длиннее, но закономерность сохраняется. Посмотри, что будет дальше.
Ты снова в самом начале после четвертой строки – там же повтор: 0, 1, 1. Если хочешь настоящую петлю, нужно либо поменять правило, либо добавить ещё столбец. Попробуй сделать так, чтобы C менялся на противоположное значение, когда B был равен нулю на предыдущем шаге – посмотрим, как это сработает. Поэкспериментируй.
Вот свежая версия, которая, должна, наконец, разорвёт этот двухшаговый цикл.
Оставим те же два правила для B и C, но добавим четвёртую колонку D, которая будет меняться всякий раз, когда в предыдущей строке C было 0, а A будет меняться, когда в предыдущей строке C было 1. Это всё перепутает.
| Строка | A | B | C | D |
|---|---|---|---|---|
| 1 | 0 | 0 | 0 | 0 |
| 2 | 1 | 1 | 1 | 1 |
| 3 | 0 | 0 | 1 | 1 |
| 4 | 1 | 1 | 0 | 0 |
| 5 | 1 | 0 | 0 | 1 |
| 6 | 1 | 1 | 1 | 0 |
| 7 | 0 | 0 | 1 | 0 |
| 8 | 1 | 1 | 0 | 1 |
| 9 | 1 | 0 | 0 | 0 |
| 10 | 1 | 1 | 1 | 1 |
Заметь, как состояние повторяется только через десять шагов. Это даёт тебе цикл из восьми шагов (строки 2–10). Попробуй уловить закономерность до повторения – удачи!