定义:
把一个整数X展开成如下形式:
X=a[n] ∗ (n-1)!+a[n-1]
其中a[i]为当前未出现的元素中是排在第几个(从0开始),并且0<=a[i] < <script type="math/tex" id="MathJax-Element-119"><</script>i(1<=i<=n)
应用
求一个数字串排列在字典序下的编号(即第几个)。当然也可以倒着用,即给你编号求数字串。
可以对一些算法进行优化,有点hash的味道。
实现:
①求一个数字串
把一个整数X展开成如下形式:
X=a[n] ∗ (n-1)!+a[n-1]
其中a[i]为当前未出现的元素中是排在第几个(从0开始),并且0<=a[i] < <script type="math/tex" id="MathJax-Element-119"><</script>i(1<=i<=n)
求一个数字串排列在字典序下的编号(即第几个)。当然也可以倒着用,即给你编号求数字串。
可以对一些算法进行优化,有点hash的味道。
①求一个数字串