原文:算法笔记--康托展开

X表示一个排列在所有的全排列中排第几个 从 开始 。 X a n a n ... a i i ... a n ,其中a i 为在当前未出现的元素中是排在第几个 从 开始 或者说下标i后面值比i这位置值小的个数 ,这就是康托展开。 逆康托展开就是把X除以 n 得到a ,然后再对 n 取模,以此类推,分别求出a 到a n 。 例题:https: projecteuler.net problem 代码: ...

2017-12-25 19:02 0 1244 推荐指数:

查看详情

和逆展开

1.展开的解释 展开就是一种特殊的哈希函数   把一个整数X展开成如下形式:   X=a[n]*n!+a[n-1]*(n-1)!+...+a[2]*2!+a[1]*1!   其中,a为整数,并且0<=a<i,i=1,2,..,n   {1,2,3,4,...,n}表示 ...

Thu Apr 12 05:36:00 CST 2012 2 6146
展开&逆展开)】

展开   咳咳,首先我们来看看展开的创始人      没错,就是这个老爷子。   他创造这个展开,一般用于哈希(但是我一般用的哈希字符串)在本篇随笔中,它将用来求某排列的排名。(真神奇) 展开实现   首先来一个柿子   看不懂没关系,我们来一个 ...

Wed Jul 24 01:13:00 CST 2019 0 563
展开&展开 的写法

展开 展开解决的是当前序列在全排序的名次的问题。 例如有五个数字组成的数列:1,2,3,4,5 那么1,2,3,4,5就是全排列的第0个【注意从0开始计数】 1,2,3,5,4就是第1个 1,2,5,3,4就是第2个 给定一个序列,怎么确定它的排名呢? 就用到了这样一个 ...

Sun Aug 20 00:35:00 CST 2017 0 1328
展开和逆展开(转)

展开和逆展开 简述展开是一个全排列到一个自然数的双射,常用于构建hash表时的空间压缩。设有n个数(1,2,3,4,…,n),可以有组成不同(n!种)的排列组合,展开表示的就是是当前排列组合在n个不同元素的全排列中的名次。 原理X=a[n]*(n-1)!+a[n-1]*(n-2 ...

Sat Jul 20 06:24:00 CST 2019 0 536
展开(有关全排列)

展开:已知一个排列,求这个排列在全排列中是第几个 展开逆运算:已知在全排列中排第几,求这个排列 展开表示的是当前排列在n个不同元素的全排列中的名次。比如213在这3个数所有排列中排第3。 那么,对于n个数的排列,展开为: 其中表示第i个元素在未出现的元素(即 第i位 ...

Sat Aug 12 18:08:00 CST 2017 0 1319
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM