康托展开
康托展开用于把一组 \(1\sim n\) 的全排列按字典序从小到大编号,压缩为 \(n!\) 的空间。
康托展开是可逆的,即一个排列 \(P\) 可以求出它在第几位,也可以求出第 \(x\) 位的排列。时间复杂度 \(O(n^2)\) 或 \(O(nlogn)\)。
康托展开运算:
\(X=\sum_{i=1}^n a_i(n-i)!\)
其中 \(a_i\) 表示排列中第 \(i\) 个数字后面比它小的数字数量。
逆康托展开
见百度百科 。
经验
本文来自博客园,作者:liyixin,转载请注明原文链接:https://www.cnblogs.com/liyixin0514/p/18357738