今有 uoj 群友问到,如下式子如何快速计算:
[
x
n
]
1
∏
i
=
0
m
(
1
−
(
u
+
v
i
)
x
)
[x^n] \frac{1}{\prod_{i=0}^m (1 - (u+vi)x)}
[ x n ] ∏ i = 0 m ( 1 − ( u + v i ) x ) 1 我想了想,觉得这就是
[
x
n
]
1
∏
i
=
0
m
(
1
−
(
u
+
v
i
)
x
)
=
[
x
n
+
m
(
n
+
m
)
!
]
e
u
x
(
e
v
x
−
1
)
m
m
!
v
m
=
1
m
!
v
m
∑
k
=
0
m
(
m
k
)
(
−
1
)
m
−
k
(
u
+
k
v
)
n
+
m
\begin{aligned}[x^n] \frac 1{\prod_{i=0}^m (1-(u+vi)x)}&=\left[\frac{x^{n+m}}{(n+m)!}\right] \frac{\mathrm e^{ux} (\mathrm e^{vx}-1)^m}{m! v^m}\\&= \frac1{m!v^m} \sum_{k=0}^m \binom {m}{k} (-1)^{m-k} (u+kv)^{n+m}\end{aligned}
[ x n ] ∏ i = 0 m ( 1 − ( u + v i ) x ) 1 = [ ( n + m ) ! x n + m ] m ! v m e u x ( e v x − 1 ) m = m ! v m 1 k = 0 ∑ m ( k m ) ( − 1 ) m − k ( u + k v ) n + m 怎么解释呢?思考一番,大概有以下四条路:
其一,组合意义:我们给这个东西编一个组合意义:
(
v
x
)
m
∏
i
=
0
m
(
1
−
(
u
+
v
i
)
x
)
=
1
1
−
u
x
v
x
1
−
(
u
+
v
)
x
⋯
v
x
1
−
(
u
+
m
v
)
x
\frac {(vx)^m}{\prod_{i=0}^m (1-(u+vi)x)} = \frac1{1-ux} \frac{vx}{1-(u+v)x} \cdots \frac {vx}{1-(u+mv)x}
∏ i = 0 m ( 1 − ( u + v i ) x ) ( v x ) m = 1 − u x 1 1 − ( u + v ) x v x ⋯ 1 − ( u + m v ) x v x 那么这是个啥呢?这大概就是说每个球首先在一个集合里,这个集合的 id 是
0
∼
m
0 \sim m
0 ∼ m 的,然后他在
0
0
0 号集合就有
u
u
u 种颜色可以选,否则有
v
v
v 种颜色可以选。其中
1
∼
m
1\sim m
1 ∼ m 这些集合都被要求了至少有一个球。这
m
m
m 个集合又被认为是不可区分的。
这么一来,上面那个 EGF 容斥就是很明显的了。
其二,线性递推方面的考虑:
首先原式是一个求逆的形式,显然是一个线性递推,而且是
m
+
1
m+1
m + 1 阶的。所以
x
m
∏
i
=
0
m
(
1
−
(
u
+
v
i
)
x
)
\frac {x^m}{\prod_{i=0}^m (1-(u+vi)x)}
∏ i = 0 m ( 1 − ( u + v i ) x ) x m 必然仍然是线性递推的。而如果想要转为 EGF,那么由于原式的特征根不重复,我们知道这必然是化为
∑
λ
k
e
(
u
+
v
k
)
x
=
e
u
x
∑
λ
k
e
v
k
x
\sum \lambda_k \mathrm e^{(u+vk)x} = \mathrm e^{ux} \sum \lambda_k \mathrm e^{vkx}
∑ λ k e ( u + v k ) x = e u x ∑ λ k e v k x 的形式。为了让前面的项都是
0
0
0 ,只好用
c
e
u
x
(
e
v
x
−
1
)
m
c \mathrm e^{ux} (\mathrm e^{vx}-1)^m
c e u x ( e v x − 1 ) m 的形式然后待定系数。
其三,分式分解:
根据分式分解系数
R
i
(
x
)
=
P
(
x
)
[
Q
(
x
)
/
q
i
(
x
)
m
o
d
q
i
(
x
)
]
−
1
m
o
d
q
i
(
x
)
R_i(x) = P(x) \left[Q(x)/q_i(x) \bmod q_i(x)\right]^{-1} \bmod q_i(x)
R i ( x ) = P ( x ) [ Q ( x ) / q i ( x ) m o d q i ( x ) ] − 1 m o d q i ( x ) ,也就是
R
i
=
[
∏
j
≠
i
(
1
−
u
+
v
j
u
+
v
i
)
]
−
1
=
∏
j
≠
i
u
+
v
i
(
i
−
j
)
v
=
(
u
+
v
i
)
m
(
−
1
)
m
−
i
v
m
i
!
(
m
−
i
)
!
\begin{aligned}R_i &= \left[\prod_{j\neq i} \left(1 - \frac{u+vj}{u+vi}\right)\right]^{-1}\\&= \prod_{j\neq i} \frac{u+vi}{(i-j)v}\\&=\frac{(u+vi)^m (-1)^{m-i}}{v^m i! (m-i)!}\end{aligned}
R i = ⎣ ⎡ j = i ∏ ( 1 − u + v i u + v j ) ⎦ ⎤ − 1 = j = i ∏ ( i − j ) v u + v i = v m i ! ( m − i ) ! ( u + v i ) m ( − 1 ) m − i 也是一致的。
其四,代数方法:
事实上我们通过两个公式可以构造
x
n
⇔
x
n
n
!
x^n \Leftrightarrow \frac{x^n}{n!}
x n ⇔ n ! x n 的线性映射。
从
x
n
n
!
\frac {x^n}{n!}
n ! x n 到
x
n
x^n
x n 的通过欧拉积分
∫
0
∞
t
n
e
−
t
d
t
=
n
!
\int_0^\infty t^n\mathrm e^{-t}\, \mathrm d t = n!
∫ 0 ∞ t n e − t d t = n ! 导出。这给出了 Laplace-Borel 变换(似乎又叫组合 Laplace 变换)
∫
0
∞
F
(
x
t
)
e
−
t
d
t
=
∑
n
n
!
x
n
[
x
n
]
F
(
x
)
\int_0^\infty F(xt)\mathrm e^{-t} \,\mathrm d t = \sum_n n!x^n [x^n]F(x)
∫ 0 ∞ F ( x t ) e − t d t = n ∑ n ! x n [ x n ] F ( x ) 而反过来,我们首先要考虑一个环路积分构造,结合指数函数
[
x
n
]
e
x
=
1
n
!
[x^n]\mathrm e^x = \frac 1 {n!}
[ x n ] e x = n ! 1 来完成:(也叫做组合 Borel 变换)
1
2
π
∫
−
π
π
F
(
z
e
−
i
ϑ
)
e
e
i
ϑ
d
ϑ
=
1
2
π
i
∫
∣
ζ
∣
=
1
e
ζ
F
(
z
ζ
)
ζ
d
ζ
=
∑
n
x
n
n
!
[
x
n
]
F
(
x
)
\frac 1{2\pi} \int_{-\pi}^\pi F(z\mathrm e^{-\mathrm i \vartheta}) \mathrm e^{\mathrm e^{\mathrm i \vartheta}} \mathrm d \vartheta = \frac 1{2\pi \mathrm i} \int_{|\zeta|=1} \frac{\mathrm e^\zeta F\left(\frac z \zeta\right)}\zeta \mathrm d \zeta = \sum_n \frac{x^n}{n!} [x^n]F(x)
2 π 1 ∫ − π π F ( z e − i ϑ ) e e i ϑ d ϑ = 2 π i 1 ∫ ∣ ζ ∣ = 1 ζ e ζ F ( ζ z ) d ζ = n ∑ n ! x n [ x n ] F ( x ) 留数我不太懂,但是参考这个 ,感觉在这种情况上的具体计算过程和分式分解是类似的。