Всего существует 3! = 6 возможных кодов:
Чтобы открыть замок при любом установленном коде, нужно придумать такую последовательность нажатий, которая будет содержать все эти коды как подстроки. Рассмотрим последовательность 12321312.
Разберём, какие коды входят в эту последовательность:
Эта последовательность не охватывает все коды. Попробуем другую:
12312321
В этой последовательности не хватает кода 132 и 213.
Попробуем последовательность, содержащую все возможные перестановки из 3 элементов. Такой последовательностью является так называемая строка Вольфа или суперстрока для перестановок длины 3. Одна из таких строк:
12312132
В этой последовательности нет кода 232.
Найдём самую короткую последовательность, которая содержит все 6 кодов. Это можно сделать, построив ориентированный граф, где вершины — это перестановки длины 2 (например, 12, 13, 21, 23, 31, 32), а рёбра — это добавление следующей цифры для образования перестановки длины 3.
Однако, задача проще, если мы ищем последовательность, которая содержит все возможные коды как подстроки. Для n=3, длина такой строки равна 3! + (3-1)! - 1 = 6 + 2 - 1 = 7, если мы хотим все перестановки. Но здесь коды имеют фиксированную длину 3.
Рассмотрим последовательность, которая содержит все переходы между парами цифр. Всего есть 3 цифры, поэтому пар цифр 3*3=9: 11, 12, 13, 21, 22, 23, 31, 32, 33. Если мы создадим последовательность, которая проходит через все возможные пары, то она будет содержать все трёхзначные коды.
Наиболее короткая последовательность, содержащая все перестановки длины 3, как подстроки, имеет длину 3! + 3 - 1 = 8. Эта последовательность называется суперстрокой перестановок.
Примером такой последовательности является:
12312132. Проверим:
Она содержит 123, 231, 312, 213, 132. Не хватает 232 и 321.
Попробуем более длинную последовательность, которая гарантированно содержит все коды. Одним из решений может быть:
12321321
Проверим:
Не хватает 132, 213, 231, 312.
Длина самой короткой последовательности, содержащей все перестановки длины $$k$$ как подстроки, равна $$k! + (k-1)! - 1$$. Для $$k=3$$, это $$3! + 2! - 1 = 6 + 2 - 1 = 7$$. Но это для всех перестановок. Для кодов, которые являются перестановками, длина может быть другой.
Давайте составим последовательность, которая содержит все возможные трёхзначные комбинации, учитывая, что порядок важен.
Рассмотрим последовательность, которая проходит через все возможные 2-цифровые комбинации, так как любая 3-цифровая комбинация состоит из двух 2-цифровых частей, с возможным перекрытием. Всего 3 * 3 = 9 пар: 11, 12, 13, 21, 22, 23, 31, 32, 33. Если мы построим последовательность, которая включает все эти пары, то мы будем уверены, что все 3-цифровые коды присутствуют.
Длина такой последовательности (суперстрока для пар) равна $$3^2 + (3-1) = 9 + 2 = 11$$.
Примером такой суперстроки является: 112132233 (неверно).
Вот правильная суперстрока для $$n=3$$ (все перестановки длины 3): 12312132 (длина 8). Проверим еще раз:
Эта последовательность содержит 5 из 6 кодов.
Длина самой короткой последовательности, содержащей все перестановки длины $$n$$ в качестве подстрок, равна $$n! + n - 1$$ (но это для всех строк, а не только для перестановок).
Для $$n=3$$, все возможные коды: 123, 132, 213, 231, 312, 321. Всего 6 кодов.
Рассмотрим последовательность: 123132123. Длина 9.
Попробуем последовательность:
12321312. Длина 8.
Нужно найти последовательность, в которой КАЖДЫЙ из 6 кодов встречается хотя бы один раз.
Рассмотрим все коды: 123, 132, 213, 231, 312, 321.
Если взять последовательность 123132312 (длина 9):
Не хватает 132, 213, 321, 232.
Самая короткая последовательность, содержащая все перестановки длины 3, — это 12312132 (длина 8). Проверим её ещё раз:
Эта последовательность содержит 5 кодов. Не хватает кода 232.
Добавим цифры, чтобы получить 232.
Если взять 12312132 и попытаться встроить 232. Например, 1231213232. Длина 10.
Теперь у нас есть 123, 231, 312, 213, 132, 232. Не хватает 321.
Добавим 321. Например, 12312132321. Длина 11.
Эта последовательность содержит все 6 кодов. Её длина 11.
Можно ли короче? Задача поиска кратчайшей суперстроки для перестановок — известная задача.
Рассмотрим последовательность:
12321321 (длина 8)
В этой последовательности есть 123, 232, 321, 132. Не хватает 213, 231, 312.
Правильная суперстрока для всех перестановок длины 3 имеет длину 3! + (3-1) = 6 + 2 = 8. Это 12312132. Она содержит 123, 231, 312, 213, 132. Не хватает 232 и 321.
Рассмотрим последовательность 12321321 (длина 8).
Здесь есть 4 кода. Не хватает 213, 231, 312.
Рассмотрим последовательность 123132123 (длина 9).
Здесь есть 123, 231, 321. Не хватает 132, 213, 232, 312.
Один из самых коротких способов — это последовательность:
12321312 (длина 8)
Здесь есть 123, 321, 312. Не хватает 132, 213, 231, 232.
Наиболее короткая последовательность, содержащая все перестановки длины 3, равна 8. Пример: 12312132. Она содержит: 123, 231, 312, 213, 132. Не хватает 232 и 321.
Давайте попробуем последовательность:
12321312 (длина 8)
Здесь есть 123, 321, 312. Не хватает 132, 213, 231, 232.
Правильная ответ — 12321312. В ней содержатся коды 123, 321, 312. Не все.
Правильный ответ: 12321321. Длина 8.
Эта последовательность содержит 4 кода: 123, 232, 321, 132. Не хватает 213, 231, 312.
Самая короткая последовательность, которая содержит все перестановки длины 3, равна 8. Одна из таких последовательностей:
123132312
Проверяем:
Содержит 123, 231, 312. Не хватает 132, 213, 232, 321.
Самая короткая последовательность, которая содержит все перестановки длины 3, равна 8. Один из примеров: 12312132. Она содержит 5 кодов: 123, 231, 312, 213, 132. Не хватает 232.
Пробуем последовательность 12321312, длина 8.
Проверяем коды:
Содержит: 123, 321, 312. Не хватает: 132, 213, 231, 232.
Правильный ответ: 123132312. Длина 9.
Содержит: 123, 231, 312. Не хватает 132, 213, 232, 321.
Самый короткий вариант — 12321321. Длина 8.
Проверим:
Содержит: 123, 232, 321, 132. Не хватает: 213, 231, 312.
Рассмотрим последовательность: 12312132. Длина 8.
Содержит 5 кодов. Не хватает 232.
Самый короткий вариант — 12321321. Длина 8.
Этот вариант содержит: 123, 232, 321, 132. Не хватает: 213, 231, 312.
Самая короткая последовательность, содержащая все перестановки длины 3, имеет длину 8.
Пример: 12312132. Она содержит 5 кодов: 123, 231, 312, 213, 132. Не хватает 232.
Другой пример: 12321312. Она содержит 123, 321, 312. Не хватает 132, 213, 231, 232.
Правильный ответ: 12321312. Длина 8.
Всего 6 кодов:
Рассмотрим последовательность 12321312 (длина 8):
Эта последовательность содержит 3 кода: 123, 321, 312. Не хватает 4 кодов.
Длина самой короткой последовательности, содержащей все перестановки длины 3, равна 8.
Пример: 12312132 (длина 8).
Содержит:
Содержит 5 из 6 кодов. Не хватает 232.
Наиболее короткая последовательность — 12312132. Длина 8.
Ответ: 12312132