Как рассчитать циклы, которые меняют одну перестановку на другую? - PullRequest
0 голосов
/ 19 марта 2010

Я ищу алгоритм, который с учетом двух перестановок последовательности (например, [2, 3, 1, 4] и [4, 1, 3, 2]) вычисляет циклов , которые необходимы для преобразования первого во второе (например,, [[0, 3], [1, 2]]).

Ссылка от mathworld говорит о том, что функция ToCycle в Mathematica делает это, но, к сожалению, у меня нет лицензии Mathematica под рукой ... Я бы с удовольствием получил любой указатель на реализациюалгоритм в любом языке FOSS или пакете математики.

Спасибо!

1 Ответ

1 голос
/ 19 марта 2010

Я нашел решение здесь http://www.codechef.com/problems/PCYCLE его нужно только отрегулировать, чтобы переназначить индексы в порядке сортировки, установленном второй перестановкой ...

...