感觉有很多高大上的数,自己都不会,还是学一下吧。
1 第一类斯特林数
1.1 意义
(n) 个元素组成 (m) 个环的方案数,元素不同,环不能为空。
1.2 记号
[egin{bmatrix}n\mend{bmatrix}
]
1.3 计算方法
[egin{bmatrix}n\mend{bmatrix}=(n-1)egin{bmatrix}n-1\mend{bmatrix}+egin{bmatrix}n-1\m-1end{bmatrix}
]
组合意义:
- 新的数可以放在之前长度为 (x) 的环里,有 (x) 种放法,由于所有环环长和为 (n-1) 所以有 (n-1) 种不增加环的方法。
- 新的数可以新开一个环。
1.4 性质
1.4.1
[sum_{i=1}^negin{bmatrix}n\iend{bmatrix}=n!
]
定义 (next_i) 为 (i) 顺时针的第一个珠子,显然 (next) 是一个排列。
不难发现左边的式子不重不漏地覆盖了所有 (next) 的排列。
1.4.2
[x^{overline n}=sum_{i=1}^negin{bmatrix}n\iend{bmatrix}x^i
]
上面那个东西的加强版,可以使用数学归纳法简单证明。
1.4.3
[x^{underline n}=sum_{i=1}^negin{bmatrix}n\iend{bmatrix}(-1)^{n-i}x^i
]
由于 (x^{underline n}=(-1)(-x)^{overline n}) 所以很好证明。
1.4.4
[sumlimits_{i=k}egin{bmatrix}i \ kend{bmatrix}dfrac{x^i}{i!}=frac{1}{k!}(-ln(1-x))^k
]
[S_1(x,y)=sum_{i=0}sum_{j=0}egin{bmatrix}i\jend{bmatrix}frac{x^iy^j}{i!}=(1-x)^{-y}
]
我们用组合意义解决顶上的东西。
(n) 个数放 (1) 个环的 ( ext{EGF}) 是 (-ln(1-x))。
(n) 个数放 (k) 个环,环有序的 ( ext{EGF}) 是 ((-ln(1-x))^k)。
然后因为环无序,直接除以 (k!) 就可以了。
2 第二类斯特林数
2.1 意义
(n) 个元素组成 (m) 组的方案数,元素不同,组相同。
2.2 记号
[egin{Bmatrix}n\mend{Bmatrix}
]
2.3 计算方法
[egin{Bmatrix}n\mend{Bmatrix}=megin{Bmatrix}n-1\mend{Bmatrix}+egin{Bmatrix}n-1\m-1end{Bmatrix}
]
组合意义和上面的差不多。
2.4 性质
2.4.1
[m^n=sum_{i=1}^megin{Bmatrix}n\iend{Bmatrix}A_m^i
]
2.4.2
[m^n=sum_{i=1}^megin{Bmatrix}n\iend{Bmatrix}i!inom{m}{i}
]
[F(x)=x^n,G(x)=egin{Bmatrix}n\xend{Bmatrix}x!
]
[F(m)sum_{i=0}^mG(i)inom{m}{i}iff G(m)=sum_{i=0}^m(-1)^{m-i}F(i)inom{m}{i}
]
[egin{Bmatrix}n\mend{Bmatrix}m!=sum_{i=0}^m(-1)^{m-i}i^ninom{m}{i}
]
2.4.3
[sumlimits_{i=k}egin{Bmatrix}i \ kend{Bmatrix}dfrac{x^i}{i!}=frac{1}{k!}(e^x-1)^k
]
[S_2(x,y)=sum_{i=0}sum_{j=0}egin{Bmatrix}i\jend{Bmatrix}frac{x^iy^j}{i!}=exp(y(e^x-1))
]
我们还是用组合意义解决顶上的东西。
(n) 个数放 (1) 个盒子的 ( ext{EGF}) 是 (e^x-1)。
(n) 个数放 (k) 个盒子,盒子有序的 ( ext{EGF}) 是 ((e^x-1)^k)。
然后因为盒子无序,直接除以 (k!) 就可以了。
3 四个斯特林数板子
3.1 第二类斯特林数·行
最简单的板子,我们直接上式子卷积即可。
[egin{Bmatrix}n\mend{Bmatrix}=sum_{i=0}^mi^nfrac{1}{i!}(-1)^{m-i}frac{1}{(m-i)!}
]
3.2 第一类斯特林数·行
[x^{overline n}=sum_{i=1}^negin{bmatrix}n\iend{bmatrix}x^i
]
于是我们要求 (x^{overline{n}})。
考虑倍增。显然从 (x^{overline{n}}) 到 (x^{overline{n+1}}) 很水,直接乘一个 ((x+n)) 就行。
所以我们考虑怎么从 (x^{overline{n}}) 到 (x^{overline{2n}})。
[x^{overline{2n}}=x^{overline{n}}(x+n)^{overline{n}}
]
[x^{overline{n}}=sum_{i=0}^nf_ix^i
]
[(x+n)^{overline{n}}=sum_{i=0}^nf_i(x+n)^i
]
[=sum_{i=0}^nf_isum_{j=0}^iinom{i}{j}x^jn^{i-j}
]
[=sum_{i=0}^nx^isum_{j=i}^nfrac{j!}{i!(j-i)!}n^{j-i}f_j
]
[=sum_{i=0}^nx^ii!sum_{j=i}^nj!f_jn^{j-i}frac{1}{(j-i)!}
]
然后就可以卷了。
3.3 第二类斯特林数·列
3.3.1 Solution 1
我们推 ( ext{OGF}) 可以得到
[F_k(x)=sumlimits_{i=k}egin{Bmatrix}i \ kend{Bmatrix}x^i=sumlimits_{i=k}(kegin{Bmatrix}i-1\kend{Bmatrix}+egin{Bmatrix}i-1\k-1end{Bmatrix})x^i
]
[F_k(x)=x(kF_k(x)+F_{k-1}(x))
]
[F_k(x)=frac{x}{1-xk}F_{k-1}(x)
]
[ecause F_0(x)=1
]
[ herefore F_k(x)=frac{x^k}{prod(1-ix)}
]
( ext{OGF}) 分治计算时间复杂度 (O(nlog^2n))。
3.3.2 Solution 2
见 2.4.3。
( ext{EGF}) 快速幂计算时间复杂度 (O(nlog n))。
3.4 第一类斯特林数·列
见 1.4.4。