[2, 3, 1, 4]
シーケンスの2つの順列(たとえば、 )を指定して、最初の順列を2番目の順列に変換するために必要なサイクル[4, 1, 3, 2]
を計算するアルゴリズムを探しています(たとえば、 )。[[0, 3], [1, 2]]
mathworldからのリンクによると、MathematicaのToCycle関数がそれを実行しますが、残念ながら手元にMathematicaライセンスがありません...FOSS言語または数学パッケージでのアルゴリズムの実装へのポインタを喜んで受け取ります。
ありがとう!