组合数学 2
错位排列
对于一个 1 , 2 , . . . , n 1,2,...,n 1,2,...,n 的任意排列,有一种情况是第 ∀ i \forall i ∀i 个位置上不是 i i i 的情况,这种排列叫做错位排列
那么方案数 f ( i ) = ( n − 1 ) ( f ( n − 1 ) + f ( n − 2 ) ) f(i) = (n-1)(f(n-1)+ f(n-2)) f(i)=(n−1)(f(n−1)+f(n−2))
边界 f ( i ) f(i) f(i)
证明:
对于错位排列,我们有两种方法
- 用 n n n 与前 ( n − 1 ) (n-1) (n−1) 个交换,根据乘法原理得 f ( i ) = ( n − 1 ) × f ( i − 1 ) f(i) = (n-1) \times f(i-1) f(i)=(n−1)×f(i−1)
- 用 n n n 在前 ( n − 1 ) (n-1) (n−1) 中抽取 1 1 1 个出来,再放回去,根据乘法原理得 f ( i ) = ( n − 1 ) × f ( n − 2 ) f(i) = (n-1) \times f(n-2) f(i)=(n−1)×f(n−2)
那么根据加法原理 f ( i ) = ( n − 1 ) f ( i − 1 ) + ( n − 1 ) f ( i − 2 ) = ( n − 1 ) f ( i − 1 ) f ( i − 2 ) f(i) = (n-1)f(i-1) + (n-1)f(i-2)=(n-1)f(i-1)f(i-2) f(i)=(n−1)f(i−1)+(n−1)f(i−2)=(n−1)f(i−1)f(i−2)
对于证明其非重复性和全面性,这个我目前还不太会证(尴尬)
杂
- 对于有 n n n 个元素的集合,它的空集就有 ∑ i = 1 n C n i = 2 n \sum_{i=1}^n C_n^i = 2^n ∑i=1nCni=2n ,注意哈,如果空集不算子集的话,那么需要减去 1 1 1
也就是 2 n − 1 2^n - 1 2n−1
-
对于整数 n n n ,求 1 1 1 到 n n n 质数的个数,也就是求 ϕ ( n ) \phi(n) ϕ(n) 我们可以用欧拉函数来做
即 n n n 的唯一分解式, n = ∏ i = 1 n p i a i n = \prod_{i=1}^np_i^{a_i} n=∏i=1npiai , p p p 是质数,有 ϕ ( n ) = n ∏ i = 1 n ( 1 − 1 p ) \phi(n) =n\prod_{i=1}^n(1 - \frac{1}{p}) ϕ(n)=n∏i=1n(1−p1)