参考资料:
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)插到哪里:
- (n)插到末尾,相邻上升个数加一。
- (n)插到开头,相邻上升个数不变。
- (n)插到原来(p_i<p_{i+1})的之间,相邻上升个数不变。
- (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:
【求一列】:即求(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}])