zoukankan      html  css  js  c++  java
  • 【康托展开】

    康托展开:

    1.定义:给一个n个不同数字的排列,求所有排列中比该排列要小的个数X

    2.式子:$X=a_n*(n-1)!+a_{n-1}*(n-2)!+……+a_1*0!$,其中$a_i$表示第1位到第i-1位上的数字中,比第i位(从右往左数)数字的个数小的数量。

    3.例子:如 {1、2、3、4}的一个排列 {2、1、4、3}:

      X=1*3!+0*2!+1*1!+0*1!= 7。

    逆康托展开

    1.猜想:既然我们可以通过1-n的一个排列S,求出X(S),那么是否给定一个X(S)可以求出S呢?

    2.结论:可以。

      对于给定的X(S)我们第一次对(n-1)!取商和余,商即为$a_n$;

      第二次对让第一次的余(n-2)!取商和和余,商即为$a_{n-1}$;

      ……

      求出$a$以后,我们对$a$进行反解,即X(S)

    3.例子:X(S)=7

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

      所以$a$={1、0、1、0},那么$s_4=2$,$s_3=1$,$s_2=4$,$s_1=3$。

      反解成功。

  • 相关阅读:
    第一次实验
    pta12
    《暗时间》读书笔记
    案例分析
    软件工程第二次作业
    阅读任务
    20210311_软工_准备工作
    学习总结
    第十四周学习总结&实验报告
    第十三周课程总结
  • 原文地址:https://www.cnblogs.com/Troywar/p/8523619.html
Copyright © 2011-2022 走看看