这东西经常见,但是结论老是忘。写这篇文章来记录一下。

引论Cayley distance一般的两个排列间的距离和全等排列间的距离Kendall tau distance一般的两个排列间的距离和全等排列间的距离参考

引论

先定义一个permutation和另外一个permutation间的“距离”,(这里距离指从排列i到另一排列j所需的最小的合法操作数目,合法操作包括但不限于:交换任意两个不同位置的元素,交换任意两个相邻位置的元素,等等。如果从i到j的操作序列中的每个合法操作都有其对应的逆操作存在, permutation往深了说还是在研究对称群,所以拿CayleyDigram作为辅助理解

图片来自这个网站

Cayley distance

一般的两个排列间的距离

这里合法操作是交换任意两个不同位置的元素。

对于业余的爱好者而言只要知道红框这里面一段文字就行了,图片来自这篇论文

和全等排列间的距离

如果是求一个一般的n-排列和全等排列之间的距离,答案就是 感性的理解就是你要破环【元素数目>=2的圆】为【若干个不动点】,至少需要【元素数目-1】次操作,遍历所有的圆求和一下就得到了结果。

Kendall tau distance

一般的两个排列间的距离

也叫冒泡排序距离。这里合法操作是交换任意两个相邻位置的元素。 维基百科里给的定义式是

维基百科里给的例子如下

和全等排列间的距离

如果是求一个一般的排列和全等排列之间的距离,答案就是的逆序对数。证明?想象冒泡排序的那个过程,最开始的排列每有一个逆序对,相邻元素交换次数就加一。

参考

Complexity of Cayley Distance and other General Metrics on Permutation Groups 冒泡排序距离例题-排队唱歌牛客题霸牛客网 StackOverflow帖子-Counting the adjacent swaps required to convert one permutation into another