我正在寻找一种算法,它给定序列的两个排列(例如[2, 3, 1, 4]
和[4, 1, 3, 2]
)计算将第一个转换为第二个所需的周期[[0, 3], [1, 2]]
(例如, )。
来自 mathworld 的链接说 Mathematica 的 ToCycle 函数可以做到这一点,但遗憾的是我手头没有任何 Mathematica 许可证......我很乐意收到任何指向任何 FOSS 语言或数学包中算法实现的指针。
谢谢!
我正在寻找一种算法,它给定序列的两个排列(例如[2, 3, 1, 4]
和[4, 1, 3, 2]
)计算将第一个转换为第二个所需的周期[[0, 3], [1, 2]]
(例如, )。
来自 mathworld 的链接说 Mathematica 的 ToCycle 函数可以做到这一点,但遗憾的是我手头没有任何 Mathematica 许可证......我很乐意收到任何指向任何 FOSS 语言或数学包中算法实现的指针。
谢谢!
我在这里找到了一个解决方案http://www.codechef.com/problems/PCYCLE它只需要调整以将索引重新映射到由第二个排列建立的排序顺序......