Эту задачку мне когда-то подбросил коллега-биоинформатик. Говорил, что она имеет непосредственное применение в биологии, и решение вполне потянет на статью. Мне тогда ее сходу решить не удалось, и насколько мне известно, эта задача и по сей день является открытой проблемой. Представляю ее на ваш суд.
Пусть нам изначально дана некоторая последовательность чисел
без повторений (то есть, перестановка). Над ней несколько раз производится следующая операция: берется некоторый отрезок последовательности и удваивается. Например, начав с тождественной перестановки для n=5:
1, 2, 3, 4, 5
можно получить
1, 2, 3, 2, 3, 4, 5 (удвоили отрезок 2,3)
1, 2, 3, 2, 3, 4, 5, 3, 2, 3, 4, 5 (удвоили отрезок 3,2,3,4,5)
и так далее.
Пусть теперь нам дана некоторая конечная последовательность чисел
где каждое число присутствует хотя бы один раз и, возможно, с повторениями. Вопросы:
1) Можно ли данную последовательность получить указанным выше образом из какой-то перестановки чисел
?
Замечание. Понятно, что, если это так, то начальная перестановка находится однозначно: достаточно из данной последовательности выделить первое вхождение каждого числа от 1 до n - это и будет начальная перестановка.
2) Если ответ на вопрос 1 утвердительный, нужно найти последовательность удвоений, преобразующих начальную перестановку к данной последовательности.
3) Определить алгоритмическую сложность предыдущих вопросов (полиномиальная, NP-полная и т.п.)
Какие будут идеи по поводу решения этой задачи?