求排列是全排列的第几个,求第几个是全排列___康托展开,逆康托展开
康托展开 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
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步