加法和乘法原理

基本:

分类考虑加法原理。

分步考虑乘法原理。

排列组合

盒子与球都有标号。

Anm=n(n−1)(n−2)⋯(n−m+1)=n!(n−m)!A_n^m=n(n-1)(n-2)\dotsb (n-m+1)=\frac{n!}{(n-m)!}

盒子无标号,球有标号。

Cnm=n(n−1)(n−2)⋯(n−m+1)m!=n!m!(n−m)!C_n^m=\frac{n(n-1)(n-2)\dotsb (n-m+1)}{m!}=\frac{n!}{m!(n-m)!}

组合相对于排列的区别就是去掉了顺序,对于 n>m,(nm)=0n>m,{n \choose m}=0。

二项式定理\color{red}{二项式定理}

设 nn 是正整数,对一切 xx 和 yy 有:

(x+y)n=∑k=0n(nm)xkyn−k⟹(ax+by)n=∑k=0n(nm)akxkbn−kyn−k(x+y)^n=\sum_{k=0}^n {n \choose m}x^ky^{n-k}\\ \Longrightarrow (ax+by)^n=\sum_{k=0}^n {n \choose m}a^k x^kb^{n-k}y^{n-k}

[NOIP2011提高组]计算系数\color{blue}{[NOIP2011 提高组] 计算系数}

P1313 [NOIP2011 提高组] 计算系数

给定一个多项式 (by+ax)k(by+ax)^k,已知 a,b,k,n,ma,b,k,n,m 请求出多项式展开后 xn×ymx^n\times y^m 项的系数。

0≤k≤10000\le k\le 1000,0≤n,m≤k0\le n,m\le k,n+m=kn+m=k,0≤a,b≤1060\le a,b\le 10^6。

结果就是 (km)anbm{k \choose m}a^nb^m,当且仅当 n+m=kn+m=k。

组合数基本公式

(nm)=(n−1m−1)+(n−1m)(1){n \choose m}={n-1 \choose m-1}+{n-1 \choose m} \tag{1}

(nm)=(nn−m)(2){n \choose m}={n\choose n-m}\tag{2}

(nm)=nk(n−1k−1)(3){n \choose m}={\frac{n}{k}}{n-1\choose k-1} \tag{3}

(n0)+(n1)+⋯+(nn)=∑i=0n(ni)=2n(4)\binom{n}{0}+\binom{n}{1}+\cdots+\binom{n}{n}=\sum_{i=0}^n\binom{n}{i}=2^n\tag{4}

∑i=0n(−1)i(ni)=[n=0](6)\sum_{i=0}^n(-1)^i\binom{n}{i}=[n=0]\tag{6}

(n+r+1r)=∑i=0r(n+ii)(7){n+r+1 \choose r}=\sum_{i=0}^{r}{n+i \choose i} \tag{7}


证:

(n+r+1r)=(n+rr)+(n+rr−1){n+r+1 \choose r}={n+r \choose r}+{n+r \choose r-1}

(n+r+1r)=(n+rr)+(n+r−1r−1)+(n+r−1r−2){n+r+1 \choose r}={n+r \choose r}+{n+r-1 \choose r-1}+{n+r-1 \choose r-2}

展开最后一项直至最后一项为 (0−1){0 \choose -1} ,无意义为 00。

证毕


(nm)×(mr)=(nr)×(n−rm−r)(8){n \choose m}\times {m \choose r}={n\choose r}\times {n-r \choose m-r}\tag{8}

m×(nm)=n×(n−1m−1)(9)m\times {n \choose m}=n\times {n-1 \choose m-1}\tag{9}


证:

据上式 r=1r=1 得证

证毕


(n+mr)=∑i=0r(ni)×(mr−i)(10){n+m \choose r}=\sum_{i=0}^r{n\choose i}\times {m \choose r-i}\tag{10}


证:

组合意义,分成 n,mn,m,枚举一边,另一边对应。

证毕


∑i=0ni×(ni)=n×2n−1(11)\sum_{i=0}^ni\times {n\choose i}=n\times 2^{n-1}\tag{11}


证:

据
m×(nm)=n×(n−1m−1)m\times {n \choose m}=n\times {n-1 \choose m-1}得

∑i=0nn×(n−1i−1)\sum_{i=0}^nn\times {n-1 \choose i-1}

n×∑i=0n(n−1i−1)n\times \sum_{i=0}^n {n-1 \choose i-1}

令 i′=i−1i^{'}=i-1,根据二项式定理

n×∑i=0n(n−1i−1)=n×2n−1 n\times \sum_{i=0}^n {n-1 \choose i-1} =n\times 2^{n-1}

则,

∑i=0ni×(ni)=n×2n−1\sum_{i=0}^ni\times {n\choose i}=n\times 2^{n-1}

证毕


插板法

x1+x2+x3+x4+xn=kx_1+x_2+x_3+x_4+x_n=k 的正整数解的组数。

(k−1n−1){k-1 \choose n-1}


x1+x2+x3+x4+xn=kx_1+x_2+x_3+x_4+x_n=k 的非负整数解的组数。

(k−1+nn−1){k-1+n \choose n-1}


x1+x2+x3+x4+xn=kx_1+x_2+x_3+x_4+x_n=k 满足 xi≥aix_i \ge a_i的组数。

(k−1−∑ai+nn−1){k-1-\sum a_i +n \choose n-1}


不相邻排列

1∼n1 \sim n 这 nn 个自然数中选 kk 个,这 kk 个数中任何两个数都不相邻的组合有 (n−k+1k)\binom {n-k+1}{k} 种。

P4071 [SDOI2016] 排列计数

求有多少种 11 到 nn 的排列 aa,满足序列恰好有 mm 个位置 ii,使得 ai=ia_i = i。

思路1easy

思路2hard

离散与组合数学

多重集合

定义:多重集是指包含重复元素的广义集合。

多重集上的排列

多重集的排列数:

设 S={n1⋅a1,n2⋅a2,⋯ ,nk⋅ak}S=\{n_1\cdot a_1,n_2\cdot a_2,\cdots,n_k\cdot a_k\} 表示由 n1n_1 个 a1a_1,n2n_2 个 a2a_2,…,nkn_k 个 aka_k 组成的多重集,SS 的全排列个数为

n!∏i=1kni!=n!n1!n2!⋯nk!\frac{n!}{\prod_{i=1}^kn_i!}=\frac{n!}{n_1!n_2!\cdots n_k!}

多重集的排列数常被称作 多重组合数,形如以下:

(nn1,n2,⋯ ,nk)=n!∏i=1kni!\binom{n}{n_1,n_2,\cdots,n_k}=\frac{n!}{\prod_{i=1}^kn_i!}

e.g.(nm)  ⟺  (nm,n−m)\dbinom{n}{m} \iff \dbinom{n}{m,n-m}

多重集上的组合

错排列

令 x=1,y=1x=1,y=1 , ∑i=0nCni=2i\sum_{i=0}^{n}C_n^i=2^i。

令 x=1,y=−1x=1,y=-1 , ∑i=0n(−1)i×Cni=[n=0]\sum_{i=0}^{n}(-1)^i \times C_n^i=[n=0]

假设存在两个函数 ff,gg。满足:

fn=∑i=0nCni×gif_n=\sum_{i=0}^{n}C_n^i \times g_i

那么考虑如何反求得 gng_n 关于 fnf_n 的等式。

gn=∑i=0n[n−i=0]×Cni×gign=∑i=0n∑j=0n−i(−1)j×Cn−ij×Cni×gign=∑i=0n∑j=0n−i(−1)j×Cnj×Cn−ji×gign=∑j=0n(−1)j×Cnj∑i=0n−jCn−ji×gign=∑i=0n(−1)i×Cni×fn−i=∑i=0n(−1)n−i×Cni×fig_n=\sum_{i=0}^{n}[n-i=0] \times C_n^i \times g_i\\ g_n=\sum_{i=0}^{n}\sum_{j=0}^{n-i}(-1)^j \times C_{n-i}^j \times C_n^i \times g_i\\ g_n=\sum_{i=0}^{n}\sum_{j=0}^{n-i}(-1)^j \times C_{n}^j \times C_{n-j}^i \times g_i\\ g_n=\sum_{j=0}^{n}(-1)^j \times C_n^j\sum_{i=0}^{n-j}C_{n-j}^i \times g_i\\ g_n=\sum_{i=0}^{n}(-1)^i \times C_n^i \times f_{n-i}=\sum_{i=0}^{n}(-1)^{n-i} \times C_n^i \times f_{i}

所以得到二项式反演的结论:

fn=∑i=0nCni×gign=∑i=0n(−1)n−i×Cni×fif_n=\sum_{i=0}^{n}C_n^i \times g_i\\ g_n=\sum_{i=0}^{n}(-1)^{n-i} \times C_n^i \times f_{i}\\


问题描述:

有 nn 个人编号为 1,...,n1, ..., n ,问这 nn 个人站成一排全都站错位置的方案数。

上述站错的定义是:第 ii 个人没有站在位置 ii 上。

方法1: 递推
设 fnf_n 表示答案,假设现在考虑到了前 ii 个人的方案,即 fif_i 。

考虑第 ii 个人站位情况:

显然第 ii 个人的不能站在位置 ii ,假设他站到了位置 kk ,显然 k∈[1,i−1]k\in[1,i-1] ,那么继续考虑 kk 的站位。

  • kk 站到了位置i,那么剩下的 i−2i-2 个人仍然构成一个原问题,方案数为 fi−2f_{i-2} 。

  • kk 没站到位置i,也即 kk 不能站在位置 ii ,那么剩下的 i−1i-1 个人仍然构成一个原问题,方案数为 fi−1f_i-1 。

所以可以得到 ff 的递推关系:

f1=0 , f2=1fi=(i−1)×(fi−1+fi−2)  i≥3f_1=0\ , \ f_2=1\\f_i=(i-1) \times (f_{i-1}+f_{i-2})\ \ i≥3

方法2:二项式反演
设 fnf_n 表示 nn 个人随便站位的方案数, gng_n 表示 nn 个人的都站错的方案数。

容易得到:

fn=n!fn=∑i=0nCni×gif_n=n!\\ f_n=\sum_{i=0}^nC_n^i \times g_i

直接二项式反演可以得到:

gn=∑i=0n(−1)n−i×Cni×fig_n=\sum_{i=0}^{n}(-1)^{n-i} \times C_n^i \times f_{i}\\

同样可以直接线性的递推出答案。


圆排列

nn 个人全部来围成一圈,所有的排列数记为 Qnn\mathrm Q_n^n。考虑其中已经排好的一圈,从不同位置断开,又变成不同的队列。
所以有

Qnn×n=Ann⟹Qn=Annn=(n−1)!\mathrm Q_n^n \times n = \mathrm A_n^n \Longrightarrow \mathrm Q_n = \frac{\mathrm A_n^n}{n} = (n-1)!

由此可知部分圆排列的公式:

Qnr=Anrr=n!r×(n−r)!\mathrm Q_n^r = \frac{\mathrm A_n^r}{r} = \frac{n!}{r \times (n-r)!}

鸽巢原理/抽屉原理

反证法,构造题。

容斥原理

卡特兰

递推式

该递推关系的解为:

Hn=(2nn)n+1(n≥2,n∈N+)H_n = \frac{\binom{2n}{n}{n+1}}(n \geq 2, n \in \mathbf{N_{+}})

关于 Catalan 数的常见公式:

Hn={∑i=1nHi−1Hn−in≥2,n∈N+1n=0,1H_n = \begin{cases} \sum_{i=1}^{n} H_{i-1} H_{n-i} & n \geq 2, n \in \mathbf{N_{+}}\\ 1 & n = 0, 1 \end{cases}

Hn=Hn−1(4n−2)n+1H_n = \frac{H_{n-1} (4n-2)}{n+1}

Hn=(2nn)−(2nn−1)H_n = \binom{2n}{n} - \binom{2n}{n-1}

路径计数问题。

所有子集复杂度

枚举 SS 的所有子集的子集的时间复杂度是 O(3n)O(3^n)
考虑一种常见的枚举子集方式:

1
2
// s 是 u 的一个非空子集 
for (int s = u; s; s = (s - 1) & u)

显然单次枚举 SS 的一个子集是 O(2∣S∣)O(2^{|S|}) 的。

复杂度证明:

O(∑T⊆S2∣T∣)O\left(\sum_{T\subseteq S}2^{|T|}\right)

不难发现,SS 中大小为 ll 的子集个数是 (nl)\dbinom nl,这是简单的组合数学知识。

转而枚举 ll,于是原式就化为

O(∑i=1n(ni)2i)O\left(\sum_{i=1}^n\dbinom ni 2^i\right)

根据二项式定理:

=∑i=1n(ni)2i=∑i=1n(ni)2i1n−i=(1+2)n−1=3n−1\begin{aligned} &=\sum_{i=1}^n \dbinom ni 2^i \\&=\sum_{i=1}^n \dbinom ni 2^i1^{n-i}\\ &=(1+2)^n-1\\ &=3^n-1\end{aligned}

于是,枚举 SS 的所有子集的子集的时间复杂度是 O(3n)O(3^n) 的。

证毕。

反演

反演:两个函数或者数列之间的双向(求和)关系

比如前缀和 andand 差分。

f(n)=∑i=0ng(i)f(n) = \sum_{i = 0}^ng(i) 就是前缀和

g(n)=f(n)−f(n−1)g(n) = f(n) - f(n - 1) 就是差分

这一对关系就是双向的求和关系。

当然这么说的话,求导和积分也就是双向的关系,那么他们也是符合反演的。

定义 AA 为关系矩阵。

有 f=g×Af = g \times A,也有 g=f×A−1g = f \times A^{-1}。

二项式反演

形式一

f(n)=∑i=0n(−1)i(ni)g(i)f(n) = \sum_{i = 0}^n(- 1)^i \binom{n}{i} g(i)

g(n)=∑i=0n(−1)i(ni)f(i)g(n) = \sum_{i = 0}^n(-1)^i \binom{n}{i} f(i)

形式二

f(n)=∑i=0n(ni)g(i)f(n) = \sum_{i = 0}^n\binom{n}{i}g(i)

g(n)=∑i=0n(−1)n−i(ni)f(i)g(n) = \sum_{i = 0}^n(-1)^{n - i}\binom{n}{i}f(i)

形式三

f(n)=∑i=n(−1)i(in)g(i)f(n) = \sum_{i = n}(-1)^i\binom{i}{n}g(i)

g(n)=∑i=n(−1)i−n(in)f(i)g(n) = \sum_{i = n}(-1)^{i - n}\binom{i}{n}f(i)

形式四

f(n)=∑i=n(−1)i(in)g(i)f(n) = \sum_{i = n}(-1)^i\binom{i}{n}g(i)

g(n)=∑i=n(−1)i(in)f(i)g(n) = \sum_{i = n}(-1)^i\binom{i}{n}f(i)

这些形式都是非常对称的。

也就是说 A[n,i]=(−1)i(ni)A[n, i] = (-1)^i\binom{n}{i} 是自逆的。

证:

(A∗A)[d,t]=∑iA[d,i]A[i,t](A * A) [d, t] = \sum_{i}A[d, i] A[i, t]

=∑i=td(−1)i(di)(−1)t(ti)= \sum_{i = t}^d(-1)^i\binom{d}{i}(-1)^t\binom{t}{i}

=(−1)t∑i=td(−1)id!i!i!(d−i)!t!(i−t)!= (-1)^t\sum_{i = t}^d(-1)^{i}\frac{d!i!}{i!(d - i)!t!(i - t)!}

=(−1)t∑i=td(−1)id!(d−t)!(d−t)!(d−i)!t!(i−t)!= (-1)^t\sum_{i = t}^d(-1)^{i}\frac{d!(d - t)!}{(d - t)!(d - i)!t!(i - t)!}

d!t!(d−t)!⋅(d−t)!(d−i)!(i−t)!\frac{d!}{t!(d - t)!} \cdot \frac{(d - t)!}{(d - i)!(i - t)!}

=(dt)⋅(d−td−i)= \binom{d}{t} \cdot \binom{d - t}{d - i}

So:So:

=(−1)t(dt)∑i=td(−1)i(d−td−i)= (-1)^t\binom{d}{t}\sum_{i = t}^d(-1)^i\binom{d - t}{d - i}

=(−1)t∑i=0d−t(−1)i+t(d−td−t−i)= (-1)^t\sum_{i = 0}^{d - t}(-1)^{i + t}\binom{d - t}{d - t - i}

=(−1)t(−1)t(dt)∑i=0d−t(−1)i(d−ti)= (-1)^t(-1)^t\binom{d}{t}\sum_{i = 0}^{d - t}(-1)^i\binom{d - t}{i}

=(−1)t(−1)t(dt)(1−1)d−t= (-1)^t(-1)^t\binom{d}{t}(1 - 1)^{d - t}

=(−1)2t(dt)(1−1)d−t=[d=t]= (-1)^{2t}\binom{d}{t}(1 - 1)^{d - t} = [d = t]

这里的 (1−1)0=00(1 - 1)^0 = 0^0 为什么是 11?(反正当时我是有这个疑惑,记得文化课老师说不能是11,但并不知道凭啥不能是 11?这个说法到底对不对???)

有些人将 00 不能是分母和这个的原因搞混了。 00 不能是分母是因为其会使运算变得混乱,

而这个是不是 11 都可以。

可能需要用到集合论的知识。

要证明a0=1a^0 = 1 需要给出映射的定义:

  1. ff 是 XX 和 YY 的笛卡尔积的子集。

  2. 对于任意 x∈Xx \in X ,存在一定的 y∈Yy \in Y ,使得 (x,y)∈f(x, y) \in f, 也就是常说的 y=f(x)y = f(x),在集合论中对函数的定义是集合之间的映
    射关系。

定义基数:定义 aba^b 是由基数为 bb 到基数为 aa 的集合的映射全体所构成集合的基数。

考虑 a0a^0 的情况,由一个空集到某一个基数为 aa 的集合的映射有多少个。答案是有一个,空映射。为什么空集可以形成映射?看第一条,空集满足了。

看第二条,空集也是满足的。因为数理逻辑里面讲(参考《离散数学》)若 pp,则 qq" 在 pp 是 falsefalse 的时候,这个命题是恒真的。

为什么呢?可以举一个很形象的例子:人们常会说:“如果太阳打西边出来,那我就不姓YY 。” 在这句话里面不管 “我” 姓不姓 YY,太阳都是

从东边出来的。也就是说这个 pp 对 qq 是没有什么影响的。并且在数理逻辑下,pp 和 qq 可以没有任何的内在联系,请和自然语言进行区分。

这里对 aa 并没有加以任何限制,也就是说 a=0a = 0 也是可以的,所以 00=10^0 = 1。

但这个又可以通过代数系统解释出:由于 00 没有逆元,所以 000^0 没有意义,或不存在。

莫比乌斯反演

克罗内克函数

δ(x,y)={1  x=y0  otherwise\delta(x, y) = \begin{cases} & \text{1} \space\space x = y \\ & \text{0} \space\space \text{otherwise} \end{cases}

黎曼函数

ζ(x,y)={1  x≤xy(0)  otherwise\zeta(x, y) = \begin{cases} & \text{1} \space\space x \le x y \\ & \text(0) \space\space \text{otherwise} \end{cases}

这里的克罗内克函数和黎曼函数均为二变量函数。

当克罗内克函数和黎曼函数的第一个变量都为 11 时,我们得出了完全积性函数ε\varepsilon 和 II 的定义。

So:{ζ(1,n)=I(n)δ(1,n)=εSo: \begin{cases} & \zeta(1, n) = I(n) \\ & \delta(1, n) = \varepsilon \end{cases}

And:And:

μ\mu 是一个二变量函数 μ(x,y)\mu(x, y) ,定义为 ζ\zeta 的逆函数。

μ∗ζ=δ \mu * \zeta = \delta

∑x≤z≤yμ(x,z)=δ(x,y) \sum_{x \le z \le y}\mu(x, z) = \delta(x, y)

莫比乌斯反演定理:

G(x)=∑z≤xF(z)⟹F(x)=∑y≤xG(y)μ(y,x)G(x) = \sum_{z \le x} F(z) \Longrightarrow F(x) = \sum_{y \le x}G(y)\mu(y, x)

证明:

=∑y≤xμ(y,x)∑z∈Xζ(z,y)F(z)=∑z∈X∑y≤xμ(y,x)ζ(z,y)F(z)= \sum_{y \le x}\mu(y, x)\sum_{z \in X}\zeta(z, y)F(z)\\ = \sum_{z \in X}\sum_{y \le x}\mu(y, x)\zeta(z, y)F(z)\\

=∑z∈Xδ(z,x)F(z)=F(x)= \sum_{z \in X}\delta(z, x)F(z) = F(x)

在实际应用中常使用莫比乌斯函数的 μ(1,n)\mu(1, n) 的形式,缩写为 μ(n)\mu(n),当然你也可以说我们常用到的莫比乌斯函数是 II 的逆函数 I−1I^{-1},大佬莫比乌斯将其命名为 μ\mu。

当然也可以通过这个了解 μ\mu 取值的定义。

SoSo 也就有了这个:

F(n)=∑d∣nf(d)F(n) = \sum_{d | n}f(d)

g(d)=∑d∣nμ(d)g(nd)g(d) = \sum_{d | n}\mu(d)g(\frac{n}{d})

自然这个也可以通过DirichletDirichlet 卷积和积性函数来解释。

狄利克雷卷积 My blog。

由于这篇博客写的时间较早,可能无法谈到更深层的东西,还请见谅。

子集反演

g(S)=∑T⊂Sf(T)g(S) = \sum_{T \subset S}f(T)

f(S)=∑T⊂S(−1)∣S∣−∣T∣g(T)f(S) = \sum_{T \subset S}(-1)^{|S| - |T|} g(T)

(一眼看上去,感觉这玩意就纯抽象,比二项式反演还要抽象, 为啥要学这个玩意啊,草。)

证明:

∑T⊂S(−1)∣S∣−∣T∣g(T)\sum_{T \subset S}(-1)^{|S| - |T|}g(T)

=∑T⊂S(−1)∣S∣−∣T∣∑R⊂Tf(R)= \sum_{T \subset S}(-1)^{|S| - |T|}\sum_{R \subset T}f(R)

=∑R⊂Sf(R)∑R⊂T⊂S(−1)∣S∣−∣T∣= \sum_{R \subset S}f(R) \sum_{R \subset T \subset S}(-1)^{|S| - |T|}

当 R=SR = S ,可以得知 ∑R⊂T⊂S(−1)∣S∣−∣T∣=1\sum_{R \subset T \subset S} (-1)^{|S| - |T|} = 1,否则任取 a∈S−Ra \in S - R,f:T↦T⊕af : T \mapsto T \oplus {a} 是双射,故 ∑R⊂T⊂S(−1)∣S∣−∣T∣=0\sum_{R \subset T \subset S} (-1)^{|S| - |T|} = 0

正好难算,至多好算: f(S)=∑T⊂Sg(T)⟹g(S)=∑T⊂S(−1)∣S∣−∣T∣f(T)f(S) = \sum_{T \subset S}g(T) \Longrightarrow g(S) = \sum_{T \subset S}(-1)^{|S| - |T|}f(T)

正好难算,至少好算: f(S)=∑S⊂Tg(T)⟹g(S)=∑S⊂T(−1)∣T∣−∣S∣f(T)f(S) = \sum_{S \subset T}g(T) \Longrightarrow g(S) = \sum_{S \subset T}(-1)^{|T| - |S|}f(T)

推广莫比乌斯函数:

μ(S)=(−1)∣S∣[S has no duplicate elements]\mu(S) = (-1)^{|S|}[S \space has \space no \space duplicate \space elements]

【莫比乌斯函数就是把整数当作质因数集合而来的反演系数!】

这个有点妙啊!

f(S)=∑T⊂Sg(T)⟹g(S)=∑T⊂Sμ(S−T)f(T)f(S) = \sum_{T \subset S}g(T) \Longrightarrow g(S) = \sum_{T \subset S} \mu(S - T)f(T)

f(S)=∑S⊂Tg(T)⟹g(S)=∑T⊂Sμ(T−s)f(T)f(S) = \sum_{S \subset T}g(T) \Longrightarrow g(S) = \sum_{T \subset S} \mu(T - s)f(T)

证明:

μ(A,A)=1\mu(A, A) = 1

设 B≠A, p=∣B∣−∣A∣B\ne A, \space p = |B| - |A|

μ(A,B)\mu(A, B)

=−∑C:A⊆C⊂Bμ(A,C)= -\sum_{C: A \subseteq C \subset B} \mu(A, C)

=−∑C:A⊆C⊂B(−1)∣C∣−∣A∣= -\sum_{C: A \subseteq C \subset B}(-1)^{|C| - |A|}

=−∑k=0p−1(−1)k(Pk)= -\sum_{k = 0}^{p - 1}(-1)^k\binom{P}{k}

=−(−(−1)p(PP)+∑k=0p(−1)k(Pk))= -(-(-1)^p\binom{P}{P} + \sum_{k = 0}^p(-1)^k\binom{P}{k})

=(−1)p(PP)= (-1)^p\binom{P}{P}

=(−1)∣B∣−∣A∣= (-1)^{|B| - |A|}

—— 转载自JLQ′sBlogJLQ's Blog

这也就是上面那样转化成立的原因。

求组合数

  • 有模数
    • 模数小 (Lucas)(Lucas)
    • 预处理
  • 无模数质因数分解

博弈论之NIM游戏

__END__