9位康托展开代码:
1 |
|
康托展开从一个不重复序列中得到某个排列在全排列中的字典序。
以9位(01235678)为例:
State | 012345678 | 012345687 | 012345768 | … | 876543210 |
---|---|---|---|---|---|
Cantor Value | 0 | 1 | 2 | … | 362880 |
原理:
从第一位开始,寻找往后序列中比第一位小的数,将其放在首位,剩下的数全排列
固定第一位,寻找往后序列比第二位小的数,将其放在第二位,剩下的数全排列
往后按此规律即可,直到遍历到最后一位
则返回值: