?

Log in

No account? Create an account

mercury13_kiev


Это не баг, это фича!


Previous Entry Share Next Entry
Паровозик, ответ
mercury13_kiev

Текст задачи

Вот она, «стрелочно-колебательная система».

Очевидно, какой-то участок AB проходится в одну сторону дважды за цикл (иначе бы стрелка A устаканилась). Но устаканиться не должна и стрелка B, которая разводит паровоз с этого участка на вариативные. Вывод: какой-то участок дважды проходится в каждую из сторон. Стрелки A и B, разумеется, смотрят центрами друг к другу.

Будем обозначать A′ и A″ первое и второе направление стрелки A.

Предположим, что этот участок был пройден как AB…AB…BA. Если AB′…AB″…BA, то непонятно, кто переключил стрелку B. Если AB′…AB′…BA, то по направлению B′ есть стрелка C с вариативностью, и непонятно, кто переключил её.

Таким образом, наш участок AB проходится как A′B′…B″A′…A″B″…B′A″…A′, что вполне сходится с нашей «восьмёркой».

Предположим, что есть и второй участок, который проходится четырежды за цикл — CD. Допустим, наш паровоз прошёл A′B′C′D′ (и между ними больше нет таких участков). Тогда поезд, пройдя D′ (и, возможно, походив по AB), должен появиться с D″ и пройти по C′. Откуда он съехал?

Вариант 1: A′B′C′D′D″C′B′A′ — нарушен шаблон пользования AB.

Вариант 2: A′B′C′D′B″A′D″C′B′A′ — нарушен шаблон пользования AB.

Вариант 3: A′B′C′D′B″A′A″B″D″ — между B″ и D есть стрелка, и её нельзя переключить, не проехав по B″A.

Четвёртого варианта нет, впереди D′.

И что можно вынести из этой задачи. «Активным компонентом» в электронике считается компонент, который может управлять энергией. Такая стрелка явно не «активная». А вот если на рельсах поставить кнопки и при наезде переключать стрелки, можно сделать нечто сложное (и, кажется, даже Тьюринг-полное, то есть работающее как компьютер). Вот, например, счётчик.

Кружок «B′» означает: «при наезде сюда стрелку B переключить на B′». Стрелки без подписей проходятся только по шерсти, и годится любое поведение, не приводящее к поломке.

UPD. Перерисовал счётчик.