zoukankan      html  css  js  c++  java
  • 【读书笔记】排列研究逆序对

    生成函数

    image-20200806162013788

    举例,比如\(n=3\)

    排列有123,132,213,231,312,321

    逆序对数分别是0,1,1,2,2,3

    \[x^0+x^1+x^1+x^2+x^2+x^3=(1+x)(1+x+x^2) \]

    课本给出的一个简单的证明是使用数学归纳法:

    \(n=2\)时,当然\(1+x\)

    如果对\(n-1\)成立的话,那么考虑n-1排列的\(n\)个位置插入元素\(n\),分别会使逆序对数+0,+1,+2,+3,...,+(n-1)。这就解释了GF又乘上\(1+x+...+x^{n-1}\)

    \(b(n,k)\)\(I_n(x)\)\(x^k\)前的系数,也是长度为\(n\)且逆序对数为\(k\)的排列的个数

    一开始的一些值

    image-20200806163414658
    http://oeis.org/A008302

    递归方程

    image-20200806162829989

    此递归方程的适用条件是\(n\geq k\)

    证明是说考察n+1-排列的最后一个元素:

    如果是\(n+1\),那么\(n+1\)在的数对不贡献,

    所以【n+1-排列且k个逆序对,with最后一个元素是\(n+1\)】的数目和【n-排列且k个逆序对】构成bijection(变换只是末尾删/增\(n+1\)),数目相等。


    如果不是\(n+1\)\(n+1\)在前n个数里。把\(n+1\)和紧跟其后的元素交换,逆序对数目会减少1,这样得到的新的n+1-排列与原来的n+1-排列构成bijection,数目自然一致。

    操作后的序列是【n+1-排列且k-1个逆序对,with第一个元素不是\(n+1\)】,按理来说我们应该算这种序列有多少个。但是如果强加上\(n\geq k\),这样【n+1-排列且k-1个逆序对】的第一个元素肯定不能是\(n+1\)了,改为数数【n+1-排列且k-1个逆序对】

    于是,【n+1-排列且k个逆序对,with最后一个元素不是\(n+1\)】的数目和【n+1-排列且k-1个逆序对】数目相等。

    递归方程-续

    1. Let \(n<k \leq\left(\begin{array}{l}n \\ 2\end{array}\right)\). Prove that

    \[b(n+1, k)=b(n+1, k-1)+b b(n, k)-b(n, k-n-1) \]

    吐槽一下这个抽风印刷,另一个地方tu ple 还分开写。。。。

    由生成函数找\(b(n,k)\)的显式表达式

    Explicit formula

    直接出击,由生成函数的形式联想到有限制的把\(k\)分解成\(n-1\)部分的compositon

    \[\begin{array}{ll} b(n, 0)=1=\left(\begin{array}{c} n \\ 0 \end{array}\right) \\ b(n, 1)=n-1=\left(\begin{array}{c} n \\ 1 \end{array}\right)-\left(\begin{array}{c} n \\ 0 \end{array}\right) & n \geq 1 \\ b(n, 2)=\left(\begin{array}{c} n \\ 2 \end{array}\right)-\left(\begin{array}{c} n \\ 0 \end{array}\right), & n \geq 2 \\ b(n, 3)=\left(\begin{array}{c} n+1 \\ 3 \end{array}\right)-\left(\begin{array}{c} n \\ 1 \end{array}\right) & n \geq 3 \\ b(n, 4)=\left(\begin{array}{c} n+2 \\ 4 \end{array}\right)-\left(\begin{array}{c} n+1 \\ 2 \end{array}\right) & n \geq 4 \\ b(n, 5)=\left(\begin{array}{c} n+3 \\ 5 \end{array}\right)-\left(\begin{array}{c} n+2 \\ 3 \end{array}\right)+1 & n\geq 5 \end{array} \]

    然后就猜啊这个\(b(n,k)\)的形式是不是就是简单的组合数正负交错和的形式啊?

    答案是否定的,形式比我们想的还要复杂一点

    image-20200806171752322

    五边形数是啥意思啊,是\(\frac{1}{2}\left(3 j^{2} \pm j\right)\)的形式

    image-20200806172006480

    书里所给证明的思路

    书里给出的证明是说先证明这个 Euler's formula

    \[\begin{aligned} f(x)=(1-x)\left(1-x^{2}\right)\left(1-x^{3}\right) \cdots &=1-x-x^{2}+x^{5}+x^{7}-x^{12}-\cdots \\ &=\sum_{j>-\infty}^{\infty}(-1)^{j} x^{\left(3 j^{2}+j\right) / 2} \end{aligned} \]

    然后因为研究的GF可以写成这样的形式

    \[I_{n}(x)=\prod_{i=1}^{n}\left(1+x+\cdots x^{i-1}\right)=\prod_{i=1}^{n} \frac{1-x^{i}}{1-x} \]

    所以

    \[f(x) \cdot(1-x)^{-n}=f(x) \cdot \sum_{h \geq 0}\left(\begin{array}{c} n+h-1 \\ h \end{array}\right) x^{h}=I_n(x) \]

    \[\sum_{j>-\infty}^{\infty}(-1)^{j} x^{\left(3 j^{2}+j\right) / 2}\cdot \sum_{h \geq 0}\left(\begin{array}{c} n+h-1 \\ h \end{array}\right) x^{h}=I_n(x) \]

    比对可知\(b(n,k)\)(即\(I_n(x)\)\(x^k\)项系数)有这样的形式

    \[b(n, k)=\sum_{j}(-1)^{j}\left(\begin{array}{c} n+k-d_{j}-1 \\ k-d_{j} \end{array}\right) \]

    major index

    说一个排列的逆序对数还可能由其他的看起来的很不相关的统计推导出来

    定义一个排列的major index是所有的降位的下标和

    举例一个排列是352461,那么它的降位置集是[2,5],因此,此排列的major index是7

    值得注意的是,只是说分布是一样的,一个permutation的逆序对数和major index不一定相等

    image-20200806172521454我都呆了我都,这为啥也能相等啊。。。。。1916年说它们数目一样,到1968年才找到bijection.证明太长了这里不放了
    找到构造的那篇论文地址

    联系行列式很是典型的那种定义

    \[\operatorname{det} A_{i j}=\sum_{q}(-1)^{i(q)}{a_{1 q_{1}}} a_{2 q_{2}} a_{3 q_{3}} \cdots a_{n q_{n}} \]

    联系二分图的完美匹配

    先空着

    多重集构成的排列的逆序对




    资料来自网络

    书用的是Combinatorics of permutations by Miklos Bona

  • 相关阅读:
    HDU 1455 http://acm.hdu.edu.cn/showproblem.php?pid=1455
    UVA 11300 Spreading the Wealth
    HDU 1702 http://acm.hdu.edu.cn/showproblem.php?pid=1702
    栈的简单应用 HDU 1022 http://acm.hdu.edu.cn/showproblem.php?pid=1022
    HDU 1702 队列与栈的简单运用http://acm.hdu.edu.cn/showproblem.php?pid=1702
    背包模板(01背包,完全背包,多重背包)
    XSS内容拓展--伪造你的IP
    Linux文件系统
    2015阿里校招研发工程师笔试题
    鸟哥的私房菜复习一
  • 原文地址:https://www.cnblogs.com/yhm138/p/13447755.html
Copyright © 2011-2022 走看看