Самая короткая цепочка битов, чье бесконечное повторение отличается после обращения - PullRequest
10 голосов
/ 17 июля 2009

Марвин Мински задал мне следующий вопрос во время моего устного экзамена:

Когда муравей ходит, он печатает двоичное число (например, 101) каждый раз, когда делает шаг. Какова минимальная длина двоичного числа в цифрах, чтобы можно было определить, в каком направлении движется муравей, не глядя на начало или конец строки? Муравей сообщает вам двоичное число.

Пример: двоичное число муравья 101, и, следовательно, муравей оставляет след, который выглядит следующим образом: 101101101101101101101. Обратите внимание, что нет способа определить, по какому пути движется муравей. Следовательно, это конкретное число не работает (но может существовать трехзначное двоичное число, которое работает).

Пример: двоичное число муравья - 011, и, следовательно, муравей оставляет след, который выглядит следующим образом: 011011011011011011. Опять же, нет способа определить, в каком направлении движется муравей, не глядя на концы строки.

Каков ответ на этот вопрос? Обратите внимание, что ответ не может быть просто примером двоичного числа, которое работает. Ответ должен включать доказательство того, что ни одно двоичное число длиной меньше n-1 не будет работать, где n - длина примера двоичного числа, которое работает. Доказательство исчерпывающим перечислением в порядке, но неприятно. :)

Ответы [ 2 ]

6 голосов
/ 22 июля 2009

Другой подход заключается в отходе от двоичных чисел. Перефразировать вопрос как «Какой кратчайший возможный образец является направленным, если разрешено использовать любое количество уникальных символов?»

Ответ здесь 3 (например, A; B; C или #; &; @), поскольку 2 не работает. Поэтому, когда у вас есть такой шаблон, как ABC, становится ясно, в каком направлении идет муравей.

Либо ... CABCABCABCABCAB ... (слева направо) Или ... CBACBACBACBACBA ... (справа налево)

Теперь, сколько двоичных цифр нам нужно, чтобы написать комбинацию из 3 символов в троичной (base-3)?

Две двоичные цифры позволяют записать одну четвертичную (основание-4) цифру, которая является первой базой, большей или равной 3.

Таким образом: (2 цифры на символ), умноженные на (3 символа) = 6 двоичных цифр.

2 голосов
/ 21 июля 2009

ChssPly76 имеет правильный ответ (ИМХО) в комментариях выше.

6 цифр, пример 100110.

...