正题
排列组合
(
a
+
b
)
m
=
∑
i
=
0
m
C
m
i
a
i
b
m
−
i
∑
i
=
0
m
C
n
i
C
m
i
=
C
n
+
m
m
∑
i
=
0
n
i
C
n
i
=
2
n
−
1
n
∑
i
=
0
n
i
2
C
n
i
=
2
n
−
2
n
(
n
+
1
)
∑
i
=
0
n
C
i
k
=
C
n
+
1
k
+
1
C
n
r
C
r
k
=
C
n
k
C
n
−
k
r
−
k
C
n
k
k
i
‾
=
C
n
−
i
k
−
i
n
i
‾
\\(a+b)^m=\sum_{i=0}^m C_m^i a^ib^{m-i} \\\sum_{i=0}^m C_n^i C_m^i =C_{n+m}^{m} \\\sum_{i=0}^n iC_n^i=2^{n-1}n \\\sum_{i=0}^n i^2C_n^i =2^{n-2}n(n+1) \\\sum_{i=0}^n C_i^k=C_{n+1}^{k+1} \\C_n^r C_r^k=C_n^k C_{n-k}^{r-k} \\C_n^k k^{\underline i}=C_{n-i}^{k-i}n^{\underline i}
(a+b)m=i=0∑mCmiaibm−ii=0∑mCniCmi=Cn+mmi=0∑niCni=2n−1ni=0∑ni2Cni=2n−2n(n+1)i=0∑nCik=Cn+1k+1CnrCrk=CnkCn−kr−kCnkki=Cn−ik−ini
1.广义二项式定理。
2.可以看成
n
n
n 个里面选
i
i
i 个,再从
m
m
m 个里面选
m
−
i
m-i
m−i 个,考虑直接从前
n
n
n 个和后
m
m
m 个里面选出
m
m
m 个,每一个方案肯定都会被算到。
3.相当于计算的是子集大小和,对于每一个元素来说,被计算的次数肯定是
2
n
−
1
2^{n-1}
2n−1,当然也可以用导数证明
4.计算的是选出一个子集,子集大小的平方和,相当于把两个球放进
i
i
i 个有标号的箱子的方案数,同样可以反着考虑,假若只有一个箱子有球,那么答案是
n
2
n
−
1
n2^{n-1}
n2n−1 ,如果有两个箱子有球,那么答案就是
n
(
n
−
1
)
2
n
−
2
n(n-1)2^{n-2}
n(n−1)2n−2 。同样也可以用生成函数求导证明。
考虑把上面的两条式子推广,那么就有
∑
i
=
0
n
i
k
C
n
i
=
∑
j
=
1
k
C
n
j
S
(
k
,
j
)
j
!
2
n
−
j
\sum_{i=0}^n i^k C_n^i=\sum_{j=1}^k C_n^j S(k,j)j!2^{n-j}
i=0∑nikCni=j=1∑kCnjS(k,j)j!2n−j
5.第五条可以用组合意义来证明,考虑在一个长为
n
+
1
n+1
n+1 的序列当中选出
k
+
1
k+1
k+1 个数,左边相当于枚举所选中的最右边的数。用杨辉三角也很好证明,大概
C
k
k
C_k^k
Ckk 就是将挪到
C
k
+
1
k
+
1
C_{k+1}^{k+1}
Ck+1k+1上,然后不断两两相加就可以得到。
6.直接考虑每个点被染成第几种颜色就可以了。
7.化系数可得
二项式反演
二项式反演基于二项式定理,证明将两式相互带入即可,不再赘述。
f
(
n
)
=
∑
k
=
0
n
(
−
1
)
k
C
n
k
g
(
k
)
⇔
g
(
n
)
=
∑
k
=
0
n
(
−
1
)
k
C
n
k
f
(
k
)
f
(
n
)
=
∑
k
=
0
n
C
n
k
g
(
k
)
⇔
g
(
n
)
=
∑
k
=
0
n
(
−
1
)
n
−
k
C
n
k
f
(
k
)
f
(
k
)
=
∑
i
=
k
n
(
−
1
)
i
C
i
k
g
(
i
)
⇔
g
(
k
)
=
∑
i
=
k
n
(
−
1
)
i
C
i
k
f
(
i
)
f
(
k
)
=
∑
i
=
k
n
C
i
k
g
(
i
)
⇔
g
(
k
)
=
∑
i
=
k
n
(
−
1
)
i
−
k
C
i
k
f
(
i
)
f(n)=\sum_{k=0}^n(-1)^kC_n^kg(k)\Leftrightarrow g(n)=\sum_{k=0}^n(-1)^kC_n^kf(k)\\ f(n)=\sum_{k=0}^nC_n^kg(k)\Leftrightarrow g(n)=\sum_{k=0}^n(-1)^{n-k}C_n^kf(k)\\ f(k)=\sum_{i=k}^n (-1)^iC_i^kg(i)\Leftrightarrow g(k)=\sum_{i=k}^n(-1)^iC_i^kf(i)\\ f(k)=\sum_{i=k}^nC_i^kg(i)\Leftrightarrow g(k)=\sum_{i=k}^n (-1)^{i-k}C_i^kf(i)\\
f(n)=k=0∑n(−1)kCnkg(k)⇔g(n)=k=0∑n(−1)kCnkf(k)f(n)=k=0∑nCnkg(k)⇔g(n)=k=0∑n(−1)n−kCnkf(k)f(k)=i=k∑n(−1)iCikg(i)⇔g(k)=i=k∑n(−1)iCikf(i)f(k)=i=k∑nCikg(i)⇔g(k)=i=k∑n(−1)i−kCikf(i)
卡特兰数
斯特林数
贝尔数
贝尔数其实就是第二类斯特林数的第i行的和,我们只需要枚举最后一个元素所在的集合便可得出贝尔数的递推公式。
B
n
+
1
=
∑
i
=
0
n
C
n
i
B
i
B_{n+1}=\sum_{i=0}^n C_n^iB_i
Bn+1=i=0∑nCniBi
当然也可以直接将第二类斯特林数的卷积形式写出来,然后求个和,就可以发现其实是一个数组的某个数和另一个数组的某一个前缀的乘积,可以直接
O
(
n
)
O(n)
O(n) 算第
n
n
n 个.
伯努利数
容斥原理