康托展开

原理】X = A[0] * (n-1)! + A[1] * (n-2)! + … + A[n-1] * 0! (A[i]表示在位置i后比位置i上数小的数的个数)

【举例】在 (1, 2, 3, 4, 5) 5个数的排列组合中,计算 (3, 4, 1, 5, 2) 的康托展开值

               X = 2 * 4! + 2 * 3! + 0 * 2! + 1 * 1! + 0 * 0! = 61 

也就是按字典序(1,2,3,4,5)遍历第61次是(3,4,1,5,2).

原文地址:https://www.cnblogs.com/dongdong25800/p/10574921.html