0
点赞
收藏
分享

微信扫一扫

测试blog

Gaaidou 2022-04-01 阅读 48
算法

Beta 积分

B ( a , b ) = ∫ 0 1 t a ( 1 − t ) b = a ! b ! ( a + b + 1 ) ! B(a,b)=\int_{0}^{1}t^a(1-t)^b=\frac{a!b!}{(a+b+1)!} B(a,b)=01ta(1t)b=(a+b+1)!a!b!

常系数齐次递推

卡特兰数

求导将生成函数计算转化为递推

f ( x ) = e − 2 x 1 − 4 x f(x)=\frac{e^{-2x}}{\sqrt{1-4x}} f(x)=14x e2x

有些特殊的二元生成函数可退化为一元生成函数
− x + ∑ k = 1 ∞ 2 x k y k − 1 = x ( 1 + x y ) 1 − x y -x+\sum_{k=1}^{\infty}2x^ky^{k-1}=\frac{x(1+xy)}{1-xy} x+k=12xkyk1=1xyx(1+xy)
二次根号
( − 1 2 k ) = ( − 1 ) k 4 k ( 2 k k ) ( 1 2 k ) = ( − 1 ) k − 1 4 k ( 2 k − 1 ) ( 2 k k ) {-\frac{1}{2}\choose k}=\frac{(-1)^k}{4^k}{2k\choose k}\\ {\frac{1}{2}\choose k}=\frac{(-1)^{k-1}}{4^k(2k-1)}{2k\choose k} (k21)=4k(1)k(k2k)(k21)=4k(2k1)(1)k1(k2k)
求导得通项公式
H ( x ) = ∑ n = 0 x n ∑ i = 0 n ( − 1 ) n [ x n ] i ! ( x − x 2 x − 1 ) i H(x)=\sum_{n=0}x^n\sum_{i=0}^{n}(-1)^{n}[x^n]i!\left(\frac{x-x^2}{x-1}\right)^i H(x)=n=0xni=0n(1)n[xn]i!(x1xx2)i
经典ODF
ln ⁡ ( 1 1 − x ) e x ( 1 + x ) n 1 ( 1 − x ) n + 1 ( 1 + x ) 1 n \ln(\frac{1}{1-x})\\ e^x\\ (1+x)^n\\ \frac{1}{(1-x)^{n+1}}\\ (1+x)^{1\over n} ln(1x1)ex(1+x)n(1x)n+11(1+x)n1
ODF的组合意义是骨牌密铺

EGF的组合意义是纸袋染色

exp的组合意义是有标号计数

PGF相关计算

期望计算

方差计算

二项式计算

上指标求和

下指标求和

上指标卷积

下指标卷积

上升幂和下降幂的二项式定理

牛顿级数

组合数的生成函数
G [ n , m ] = ( n m ) G ( x , y ) = 1 1 − x − x y G[n,m]={n\choose m}\\ G(x,y)=\frac{1}{1-x-xy} G[n,m]=(mn)G(x,y)=1xxy1

第一类斯特林数

定义
[ n m ] = [ n − 1 m − 1 ] + ( n − 1 ) [ n − 1 m ] \left[\begin{matrix}n\\m\end{matrix}\right]=\left[\begin{matrix}n-1\\m-1\end{matrix}\right]+(n-1)\left[\begin{matrix}n-1\\m\end{matrix}\right] [nm]=[n1m1]+(n1)[n1m]

二元EGF
∑ n ∞ ∑ m ∞ [ n m ] x n y m n ! = ( 1 − x ) − y \sum_{n}^{\infty}\sum_{m}^{\infty}\left[\begin{matrix}n\\m\end{matrix}\right]\frac{x^ny^m}{n!}=(1-x)^{-y} nm[nm]n!xnym=(1x)y
一行第一类斯特林数
∑ i = 0 n [ n i ] x i = x n ‾ \sum_{i=0}^{n}\left[\begin{matrix}n\\i\end{matrix}\right]x^i=x^{\overline{n}} i=0n[ni]xi=xn
一列第一类斯特林数
∑ i = 0 ∞ [ i m ] x i i ! = ( − ln ⁡ ( 1 − x ) ) m m ! \sum_{i=0}^{\infty}\left[\begin{matrix}i\\m\end{matrix}\right]\frac{x^i}{i!}=\frac{(-\ln(1-x))^m}{m!} i=0[im]i!xi=m!(ln(1x))m
第一类斯特林数与上升幂和下降幂的关系
x n ‾ = ∑ k = 0 n [ n k ] x k x n ‾ = ∑ k = 0 n ( − 1 ) n − k [ n k ] x k x^{\overline{n}}=\sum_{k=0}^{n}\left[\begin{matrix}n\\k\end{matrix}\right]x^k\\ x^{\underline{n}}=\sum_{k=0}^{n}(-1)^{n-k}\left[\begin{matrix}n\\k\end{matrix}\right]x^k\\ xn=k=0n[nk]xkxn=k=0n(1)nk[nk]xk
斯特林反演求牛顿级数

第二类斯特林数

定义
{ n m } = { n − 1 m − 1 } + m { n − 1 m } \left\{\begin{matrix}n\\m\end{matrix}\right\}=\left\{\begin{matrix}n-1\\m-1\end{matrix}\right\}+m\left\{\begin{matrix}n-1\\m\end{matrix}\right\} {nm}={n1m1}+m{n1m}
二元生成函数
∑ n ∞ ∑ m ∞ { n m } x n y m n ! = exp ⁡ ( y ( e x − 1 ) ) \sum_{n}^{\infty}\sum_{m}^{\infty}\left\{\begin{matrix}n\\m\end{matrix}\right\}\frac{x^ny^m}{n!}=\exp(y(e^x-1)) nm{nm}n!xnym=exp(y(ex1))
一行第二类斯特林数
m n = ∑ i = 0 m { n i } ( m i ) i ! { n m } = ∑ i = 0 m i n i ! ⋅ ( − 1 ) m − i ( m − i ) ! m^n=\sum_{i=0}^m\left\{\begin{matrix}n\\i\end{matrix}\right\}{m\choose i}i!\\ \left\{\begin{matrix}n\\m\end{matrix}\right\}=\sum_{i=0}^{m}\frac{i^n}{i!}\cdot\frac{(-1)^{m-i}}{(m-i)!} mn=i=0m{ni}(im)i!{nm}=i=0mi!in(mi)!(1)mi
一列第二类斯特林数
∑ i = 0 ∞ { i m } x i i ! = ( e x − 1 ) m m ! \sum_{i=0}^{\infty}\left\{\begin{matrix}i\\m\end{matrix}\right\}\frac{x^i}{i!}=\frac{(e^x-1)^m}{m!} i=0{im}i!xi=m!(ex1)m
第二类斯特林数求自然数幂和

0 ≤ k ≤ n 0\le k\le n 0kn
∑ i = 0 n i k = ∑ i = 0 k { k i } ( n + 1 i + 1 ) i ! \sum_{i=0}^{n}i^k=\sum_{i=0}^{k}\left\{\begin{matrix}k\\i\end{matrix}\right\}{n+1\choose i+1}i! i=0nik=i=0k{ki}(i+1n+1)i!
可以做到 O ( k ) O(k) O(k)​。

斯特林反演
f ( n ) = ∑ i = 0 n { n i } g ( i ) ⇔ g ( n ) = ∑ i = 0 n ( − 1 ) n − i [ n i ] f ( i ) f ( n ) = ∑ i = n m { i n } g ( i ) ⇔ g ( n ) = ∑ i = n m ( − 1 ) i − n [ i n ] f ( i ) f(n)=\sum_{i=0}^{n}\left\{\begin{matrix}n\\i\end{matrix}\right\}g(i)\Leftrightarrow g(n)=\sum_{i=0}^{n}(-1)^{n-i}\left[\begin{matrix}n\\i\end{matrix}\right]f(i)\\ f(n)=\sum_{i=n}^{m}\left\{\begin{matrix}i\\n\end{matrix}\right\}g(i)\Leftrightarrow g(n)=\sum_{i=n}^{m}(-1)^{i-n}\left[\begin{matrix}i\\n\end{matrix}\right]f(i)\\ f(n)=i=0n{ni}g(i)g(n)=i=0n(1)ni[ni]f(i)f(n)=i=nm{in}g(i)g(n)=i=nm(1)in[in]f(i)
上升幂和下降幂转普通幂
x n = ∑ k = 0 n { n k } x k ‾ = ∑ k = 0 n ( − 1 ) n − k { n k } x k ‾ x^n=\sum_{k=0}^{n}\left\{\begin{matrix}n\\k\end{matrix}\right\}x^{\underline{k}}=\sum_{k=0}^{n}(-1)^{n-k}\left\{\begin{matrix}n\\k\end{matrix}\right\}x^{\overline{k}} xn=k=0n{nk}xk=k=0n(1)nk{nk}xk
exp求自然数幂和

0 ≤ k ≤ n 0\le k\le n 0kn
f ( x ) = ∑ k = 0 ∞ ( ∑ i = 0 n i k ) x k k ! = ∑ i = 0 n e i x = e ( n + 1 ) x − 1 e x − 1 \begin{aligned} f(x)&=\sum_{k=0}^{\infty}\left(\sum_{i=0}^{n}i^k\right)\frac{x^k}{k!}\\ &=\sum_{i=0}^{n}e^{ix}\\ &=\frac{e^{(n+1)x}-1}{e^x-1} \end{aligned} f(x)=k=0(i=0nik)k!xk=i=0neix=ex1e(n+1)x1
如果我们定义
B ( x ) = x e x − 1 B(x)=\frac{x}{e^x-1} B(x)=ex1x

f ( x ) = B ( x ) ⋅ e ( n + 1 ) x − 1 x f(x)=B(x)\cdot\frac{e^{(n+1)x}-1}{x} f(x)=B(x)xe(n+1)x1
若将问题拓展,求
∑ i = 0 n ( n i ) i k \sum_{i=0}^{n}{n\choose i}i^k i=0n(in)ik
则可令
f ( x ) = ∑ k = 0 ∞ ( ∑ i = 0 n ( n i ) i k ) x k k ! = ∑ i = 0 n ( n i ) e i x = ( e x + 1 ) n = 2 n ( e x + 1 2 ) n \begin{aligned} f(x)&=\sum_{k=0}^{\infty}\left(\sum_{i=0}^{n}{n\choose i}i^k\right)\frac{x^k}{k!}\\ &=\sum_{i=0}^{n}{n\choose i}e^{ix}\\ &=(e^x+1)^n\\ &=2^n\left(\frac{e^x+1}{2}\right)^n \end{aligned} f(x)=k=0(i=0n(in)ik)k!xk=i=0n(in)eix=(ex+1)n=2n(2ex+1)n
这说明了与自然数幂和有关的问题可以利用这个方法求解

拆分数和五边形数定理

f ( x ) f(x) f(x) 代表拆分数的生成函数,显然有
f ( x ) = ∏ i = 1 ∞ 1 1 − x i f(x)=\prod_{i=1}^{\infty}\frac{1}{1-x^i} f(x)=i=11xi1
ϕ ( x ) \phi(x) ϕ(x)
ϕ ( x ) = ∏ i = 1 ∞ ( 1 − x i ) \phi(x)=\prod_{i=1}^{\infty}(1-x^i) ϕ(x)=i=1(1xi)
也就是说 f ( x ) = 1 ϕ ( x ) \displaystyle f(x)=\frac{1}{\phi(x)} f(x)=ϕ(x)1

五边形数定理就是
ϕ ( x ) = 1 + ∑ i = 1 ∞ ( − 1 ) i x i ( 3 i ± 1 ) / 2 \phi(x)=1+\sum_{i=1}^{\infty}(-1)^ix^{i(3i\pm1)/2} ϕ(x)=1+i=1(1)ixi(3i±1)/2

for(int i = 1, d; (d = i*(3*i-1)/2) <= n; ++i){
    a[d] = i&1?-1:1;
    if ((d += i) <= n) a[d] = i&1?-1:1;
    else break;
}

组合结构符号化

单位元 E \mathcal{E} E
E = 1 \mathcal{E}=1 E=1

单点集 Z \mathcal{Z} Z
Z = z \mathcal{Z}=z Z=z

Sequence \text{Sequence} Sequence 构造
SEQ ( A ) = E + A × A + A × A × A + . . . = 1 1 − A ( z ) \text{SEQ}(\mathcal{A})=\mathcal{E}+\mathcal{A}\times\mathcal{A}+\mathcal{A}\times\mathcal{A}\times\mathcal{A}+...\\ =\frac{1}{1-A(z)} SEQ(A)=E+A×A+A×A×A+...=1A(z)1
A m p l i f i c a t i o n k \mathrm{Amplification_k} Amplificationk 构造
A M P k ( A ) = { ( a , a , . . . , a ) ∣ a ∈ A } \mathrm{AMP}_k(\mathcal{A}) = \{(a,a,...,a)|a\in\mathcal{A}\} AMPk(A)={(a,a,...,a)aA}
膨胀构造一般用于复制。

比如 a b a c b abacb abacb 复制 k k k 次就是 a b a c b ∣ a b a c b ∣ a b a c b ∣ . . . . ∣ a b a c b abacb|abacb|abacb|....|abacb abacbabacbabacb....abacb,相当于 a a a . . . a ∣ b b b . . . b ∣ a a a . . . a ∣ c c c . . . c ∣ b b b . . . b aaa...a|bbb...b|aaa...a|ccc...c|bbb...b aaa...abbb...baaa...accc...cbbb...b,也就是说两者有双射关系。

置换群下的等价类

A ⊆ S E Q ( B ) \mathcal{A}\sube\mathrm{SEQ}(\mathcal{B}) ASEQ(B) G G G 某些置换群的并集(这不意味着 G G G 是群), G k G_k Gk G G G 中长度为 k k k 的置换群 。

可定义分类集 S = A / G S=\mathcal{A}/\mathrm{G} S=A/G

∀ s ∈ S \forall s\in S sS,满足 s ⊆ A s\sube \mathcal{A} sA ∀ x , y ∈ s ,   ∃ g ∈ G \forall x,y\in s,\ \exists g\in G x,ys, gG,使得 g ( x ) = y g(x)=y g(x)=y

C y c l e \mathrm{Cycle} Cycle 构造

G G G 为全体置换组成的置换群列。定义“生成(无标号)环构造”为 :

C Y C ( A ) = ( S E Q ( A ) − E ) / G {\rm CYC}(\mathcal A)=({\rm SEQ}(\mathcal A)-\mathcal E)/G CYC(A)=(SEQ(A)E)/G

考虑从 A \mathrm{A} A 中取出 k k k 个元素组成的结构,它在 G k G_k Gk(长度为 k k k 的环置换)的等价类
C Y C k ( A ) = ( S E Q k A ) / G k \mathrm{CYC}_k(\mathcal{A})=({\rm SEQ}_k\mathcal A)/G_k CYCk(A)=(SEQkA)/Gk
枚举 G k G_k Gk 中旋转的步长 i i i,由 burnside \text{burnside} burnside 定理可知

C k ( x ) = 1 k ∑ i = 0 k − 1 A ( x k / gcd ⁡ ( i , k ) ) gcd ⁡ ( i , k ) = 1 k ∑ g ∣ k φ ( g ) A ( x g ) k / g \begin{aligned} C_k(x)&=\frac{1}{k}\sum_{i=0}^{k-1}A(x^{k/\gcd(i,k)})^{\gcd(i,k)}\\ &=\frac{1}{k}\sum_{g|k}\varphi(g)A(x^{g})^{k/g} \end{aligned} Ck(x)=k1i=0k1A(xk/gcd(i,k))gcd(i,k)=k1gkφ(g)A(xg)k/g

然后求 C ( x ) C(x) C(x)
C ( x ) = ∑ k = 1 ∞ C k ( x ) = ∑ g = 1 ∞ φ ( g ) g ∑ t = 1 ∞ A ( x g ) t t = ∑ g = 1 ∞ φ ( g ) g ln ⁡ ( 1 1 − A ( x g ) ) \begin{aligned} C(x)&=\sum_{k=1}^{\infty}C_k(x)\\ &=\sum_{g=1}^{\infty}\frac{\varphi(g)}{g}\sum_{t=1}^{\infty}\frac{A(x^g)^t}{t}\\ &=\sum_{g=1}^{\infty}\frac{\varphi(g)}{g}\ln(\frac{1}{1-A(x^g)}) \end{aligned} C(x)=k=1Ck(x)=g=1gφ(g)t=1tA(xg)t=g=1gφ(g)ln(1A(xg)1)
M u l t i s e t \mathrm{Multiset} Multiset 构造

G G G 为全体置换组成的置换群列。定义无序构造为
M S E T ( A ) = ( S E Q ( A ) − E ) / G \mathrm{MSET}(\mathcal{A})=(\mathrm{SEQ}(\mathcal{A})-\mathcal{E})/G MSET(A)=(SEQ(A)E)/G
M S E T \mathrm{MSET} MSET 构造相当于完全背包,它对应的生成函数为
∏ k = 1 ∞ ( 1 1 − x k ) A [ k ] \prod_{k=1}^{\infty}\left(\frac{1}{1-x^k}\right)^{A[k]} k=1(1xk1)A[k]
这个也称作欧拉变换。

求其逆变换需要莫比乌斯反演。

P o w e r S e t \mathrm{PowerSet} PowerSet 构造
P S E T ( A ) = ∏ a ∈ A ( { ϵ } + { a } ) \mathrm{PSET}(\mathcal{A})=\prod_{a\in\mathcal{A}}(\{\epsilon\}+\{a\}) PSET(A)=aA({ϵ}+{a})
这相当于 01 \text{01} 01 背包。
P ( x ) = ∏ i = 0 ∞ ( 1 + x k ) A [ k ] P(x)=\prod_{i=0}^{\infty}(1+x^k)^{A[k]} P(x)=i=0(1+xk)A[k]

举报

相关推荐

0 条评论