阶乘进制

维基百科,自由的百科全书

组合数学中,阶乘进制又称阶乘数字系统是一种适用于编号排列混合底数英语Mixed radix进制数字系统。阶乘本身不做为底数,而是做为进制的位数值。若将一个小于n!的数转换成阶乘进制可以得到一个n位的序列,该序列可以转换成n的直接排列方式,也可以用于莱默码英语Lehmer code或作为逆序对[1];在前一种情况下,从整数到n排列的映射结果将n的排列按字典顺序列出。康托尔研究了一般的混合底数系统。[2] 术语“阶乘数字系统”(factorial number system)由高德纳使用[3]

例如3:4:1:0:1:0!代表354413021100,其值为:

= 3×5! + 4×4! + 1×3! + 0×2! + 1×1! + 0×0! 
= ((((3×5 + 4)×4 + 1)×3 + 0)×2 + 1)×1 + 0
=  46310.

参考文献

  1. ^ Knuth, D. E., Volume 3: Sorting and Searching, The Art of Computer Programming, Addison-Wesley: 12, 1973, ISBN 0-201-89685-0 
  2. ^ Cantor, G., Zeitschrift für Mathematik und Physik 14, 1869 .
  3. ^ Knuth, D. E., Volume 2: Seminumerical Algorithms, The Art of Computer Programming 3rd, Addison-Wesley: 192, 1997, ISBN 0-201-89684-2 .