求排列是全排列的第几个,求第几个是全排列___康托展开,逆康托展开


康托展开 Cantor expansion
康托展开是一个全排列到一个自然数的双射,常用于构建哈希表时的空间压缩。
康托展开的实质是计算当前排列在所有由小到大全排列中的顺序,因此是可逆的。

说直白些就是:
你给一个排列,康托展开可以计算它是第几个全排列.

逆康托展开:
你给一个数组和一个数字k,康托展开可以计算数组的第k个全排列.

然后其在hash表中的应用. 就参考 八数码 题. HDU - 1043

 

然后其他的百度百科讲得很清楚了.所以就直接放链接了.

https://baike.baidu.com/item/%E5%BA%B7%E6%89%98%E5%B1%95%E5%BC%80/7968428?fr=aladdin

posted @ 2018-08-14 15:29  过路人1998  阅读(444)  评论(0编辑  收藏  举报