康托展开

✍ dations ◷ 2025-11-16 19:31:56 #康托展开

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

以下称第x个全排列都是指由小到大的顺序。

X = a n ( n 1 ) ! + a n 1 ( n 2 ) ! + + a 1 0 ! {displaystyle X=a_{n}(n-1)!+a_{n-1}(n-2)!+cdots +a_{1}cdot 0!}

其中, a i {displaystyle a_{i}} 为整数,并且 0 a i < i , 1 i n {displaystyle 0leq a_{i}<i,1leq ileq n}

a i {displaystyle a_{i}} 的意义参见举例中的解释部分

例如,3 5 7 4 1 2 9 6 8 展开为 98884。因为X=2*8!+3*7!+4*6!+2*5!+0*4!+0*3!+2*2!+0*1!+0*0!=98884.

解释:

排列的第一位是3,比3小的数有两个,以这样的数开始的排列有8!个,因此第一项为2*8!

排列的第二位是5,比5小的数有1、2、3、4,由于3已经出现,因此共有3个比5小的数,这样的排列有7!个,因此第二项为3*7!

以此类推,直至0*0!

显然,n位(0~n-1)全排列后,其康托展开唯一且最大约为n!,因此可以由更小的空间来储存这些排列。由公式可将X逆推出唯一的一个排列。

既然康托展开是一个双射,那么一定可以通过康托展开值求出原排列,即可以求出n的全排列中第x大排列。

如n=5,x=96时:

首先用96-1得到95,说明x之前有95个排列.(将此数本身减去1)用95去除4! 得到3余23,说明有3个数比第1位小,所以第一位是4.用23去除3! 得到3余5,说明有3个数比第2位小,所以是4,但是4已出现过,因此是5.用5去除2!得到2余1,类似地,这一位是3.用1去除1!得到1余0,这一位是2.最后一位只能是1.所以这个数是45321.

按以上方法可以得出通用的算法。

相关

  • 共同行动模式共同行动模式(英语:Shared Action Model)由嘉义长庚医院精神科主治医师陈锦宏医师提出之有关精神心理患者的照护模式。共同行动模式是透过“医疗专业人员”与“精神心理患者之
  • 国际人权联盟 (巴黎)国际人权联盟(FIDH)是一个非政府人权组织,成立于1922年,总部在巴黎,是历史最悠久的世界性人权组织,涵盖100多个国家的184个会员组织。 国际人权联盟是无党派,无宗派,独立于任何政府
  • 马克仁星系马克仁星系(Markarian galaxies)是一种和其他星系相比,其星系核紫外线辐射超量的一种星系。苏联籍亚美尼亚天文学家本杰明·马克仁(英语:Benjamin Markarian)于1963年首次注意到这
  • 法比奥·巴西莱法比奥·巴西莱(1994年10月7日-)是一名意大利柔道选手。他在2016年夏季奥林匹克运动会中获得男子66公斤级柔道金牌。这是意大利的第200枚夏季奥运金牌。
  • 李鹏翥李鹏翥(1934年-2014年10月30日),笔名梅萼华,男,广东梅县人,生于澳门,中国新闻工作者、作家,曾任《澳门日报》社社长,澳门文化传媒集团副董事长,第十届全国人大代表。
  • 死亡竞赛死亡竞赛(英语:DeathMatch,缩写:DM;英文也做Free for all,缩写:FFA;又作死斗)是一种在动作射击游戏、动作角色扮演游戏等类型的电子游戏中常见的竞赛方式。标准的FFA或DM是一种在规定
  • 世界尽头《世界尽头》(英语:)是一部2013英国-美国-日本日科幻喜剧片,导演埃德加·赖特,莱特也和西蒙·佩格为本片编剧,并由西蒙·佩格、尼克·弗罗斯特、派迪·康斯丁、马丁·弗里曼、艾迪
  • 阿纳托利·谢尔盖耶维奇·马特维延科阿纳托利·谢尔盖耶维奇·马特维延科(乌克兰语:Анатолій Сергійович Матвієнко,1953年3月22日-2020年5月22日),乌克兰政治人物,最高拉达议员。曾任克里
  • 陈妍霏陈妍霏(2000年8月9日-),台湾女演员,2020年以电影《无声》获得第57届金马奖最佳新演员奖 。
  • 2019年飓风温贝托</noinclude>飓风温贝托规模庞大、风力强劲,于2019年9月重创英国海外领土百慕大,是2019年大西洋飓风季第八个获命名的风暴,第三场飓风和第二场大型飓风。系统源自东风波和上层低压槽长时间的相互影响,于9月13日成型,然后沿佛罗里达州东海岸平行移动,直至9月16日突然大幅转向东北。由于外界环境有利,气旋当天升级成飓风,并在9月18日达到最高强度,风速属三级飓风范围。协调世界时9月19日午夜零点左右,风暴中心从距百慕大不足100千米近海经过,然后因风切变增强、空气干燥减弱,深层对流逐渐