• 欧拉数学习小记


    参考资料:

    https://www.luogu.com.cn/blog/Karry5307/eulerian-numbers

    https://www.cnblogs.com/mengnan/p/9307521.html


    欧拉数:(langleegin{matrix}n\ kend{matrix} angle)(为了方便编辑记作(E(n,k))),表示:有多少个长度为(n)的排列(p),满足(sum_i [p_i<p_{i+1}]=k),即相邻上升个数为(k)

    【一些性质】

    递推式:(E(n,k)=(k+1)E(n-1,k)+(n-k)E(n-1,k-1))

    考虑从(n-1)转移到(n),新增的(n)插到哪里:

    1. (n)插到末尾,相邻上升个数加一。
    2. (n)插到开头,相邻上升个数不变。
    3. (n)插到原来(p_i<p_{i+1})的之间,相邻上升个数不变。
    4. (n)插到原来(p_i>p_{i+1})的之间,相邻上升个数加一。

    综合起来可得递推式。

    对称性:(E(n,k)=E(n,n-k-1))(如果(n>0)

    显然任意排列({p_i})({n-p_{i}+1})一一对应,而且两者相邻上升个数总和为(n-1)

    通项1:(E(n,k)=sum_{i=k}^{n-1}inom{i}{k}(-1)^{i-k}(n-i)!S(n,n-i))。其中(S)为第二类斯特林数。

    考虑相邻上升个数至少为(k)如何计算,记为(F(n,k))。也就是把(n)个数分成(n-k)个集合,对这(n-k)个集合进行排列。同一个集合的连在一起,并且排好序。于是(F(n,k)=(n-i)!S(n,n-i))

    由于(F(n,k)=sum_{i=k}^{n-1} inom{i}{k}E(n,k)),反演得(E(n,k)=sum_{i=k}^{n-1}inom{i}{k}(-1)^{i-k}F(n,i))

    通项2:(E(n,k)=(-1)^{n-k}sum_{i=0}^{n-k}(-1)^ii^ninom{n+1}{k+i+1})

    在通项1中,代入第二类斯特林数通项(S(n,k)=frac{1}{k!}sum_{i=0}^kinom{k}{i}(-1)^{k-i}i^n)

    通过一些基础的组合数技巧可以得到通项2。

    通项3:(E(n,k)=sum_{i=0}^k(-1)^i(k+1-i)^ninom{n+1}{i})

    由于(E(n,k)=E(n,n-k-1)),把(E(n,n-k-1))代入通项2得到(E(n,k)=sum_{i=0}^{k+1}(-1)^i(k+1-i)^ninom{n+1}{i})

    如果(n>0),则枚举边界(0dots k+1)可以改为(0dots k)

    如果(n=0),不满足对称性。不过这时候发现把枚举边界(0dots k+1)改为(0dots k)恰好为正确答案。

    所以(E(n,k)=sum_{i=0}^k(-1)^i(k+1-i)^ninom{n+1}{i})


    【Worpitzky 恒等式】:(x^n=sum_kE(n,k)inom{x+k}{n})

    首先有(xinom{x+k}{n}=(k+1)inom{x+k}{n+1}+(n-k)inom{x+k+1}{n+1})。展开即可证明。

    现在证明(xx^n=sum_kE(n,k)xinom{x+k}{n})等于(x^{n+1}=sum_{k}E(n+1,k)inom{x+k}{n+1})

    左边展开(xinom{x+k}{n}),右边展开(E(n+1,k)),化一下式子即可证明。


    【求一行】:即求(n)相同的(E(n,k))

    套用通项3:

    (E(n,k)=sum_{i=0}^k(-1)^i(k+1-i)^ninom{n+1}{i}=(sum_{i}(-1)^iinom{n+1}x^i)(sum_{i+1}^nx^i)[x^k])

    套用通项1:

    [E(n,k)=E(n,n-1-k)\=sum_{i=0}^kinom{n-1-i}{n-1-k}(-1)^{k-i}(i+1)!S(n,i+1)\=frac{1}{(n-1-k)!}(sum_i(n-1-i)!(i+1)!S(n,i+1)x^i)(sum_ifrac{(-1)^i}{i!}x^i)[x^k] ]

    【求一列】:即求(k)相同的(E(n,k))

    套用通项2:

    (E(n,k)=(-1)^{n-k}sum_{i=0}^{n-k}(-1)^ii^ninom{n+1}{k+i+1}=(-1)^{n-k}(n+1)!(sum_ifrac{(-1)^ii^n}{(k+i+1)!}x^i)(sum_{i}frac{1}{i!}x^i)[x^{n-k}])

  • 相关阅读:
    python_网络编程struct模块解决黏包问题
    python_网络编程socket(UDP)
    python_网络编程socket(TCP)
    python_面向对象
    python_生成器
    python_迭代器
    linux实操_shell自定义函数
    linux实操_shell系统函数
    linux实操_shell读取控制台输入
    scrapy-redis 0.6.8 配置信息
  • 原文地址:https://www.cnblogs.com/jz-597/p/14701751.html
Copyright © 2020-2023  润新知