如何计算将一个排列变为另一个排列的循环?

时间:2010-03-19 10:07:33

标签: math cycle combinatorics permutation

我正在寻找一种给出序列的两个排列的算法(例如[2, 3, 1, 4][4, 1, 3, 2])计算将第一个转换为第二个所需的cycles(对于示例,[[0, 3], [1, 2]])。

来自mathworld的链接说Mathematica的ToCycle功能可以做到这一点,但遗憾的是我手头没有任何Mathematica许可证...我很乐意收到任何指向任何FOSS语言或数学包中算法实现的指针

谢谢!

1 个答案:

答案 0 :(得分:0)

我在这里找到了一个解决方案http://www.codechef.com/problems/PCYCLE只需要调整它就可以将索引重新映射到第二个排列所建立的排序顺序......