一、什么是容斥原理?
容斥原理,想必大家都或多或少地了解一点。从小学开始,我们就会遇到类似这样的问题:
班上总共 40 个同学参加期末考试,其中 9 个考了数学满分,12 个考了英语满分,有 5 个同学数学和英语都是满分,那么有多少同学既没有得数学满分,也没有得英语满分?
这样一个问题,应用的就是容斥原理。
那如果是三个集合呢?不妨画个图分析一下:
也是同样的。假设这三个集合分别是
A
,
B
,
C
A,B,C
A,B,C。
如果算
∣
A
∣
+
∣
B
∣
+
∣
C
∣
|A|+|B|+|C|
∣A∣+∣B∣+∣C∣,那么这三个集合中,两两的交集中每个元素都被多算了一次。
把它们减掉,就是
∣
A
∣
+
∣
B
∣
+
∣
C
∣
−
∣
A
∩
B
∣
−
∣
B
∩
C
∣
−
∣
C
∩
A
∣
|A|+|B|+|C|-|A\cap B|-|B\cap C|-|C\cap A|
∣A∣+∣B∣+∣C∣−∣A∩B∣−∣B∩C∣−∣C∩A∣。
但是,这又会导致
A
,
B
,
C
A,B,C
A,B,C 三个集合共同的交集没有被算到。所以再加回去,我们就会得到三个集合的并集元素:
∣
A
∪
B
∪
C
∣
=
∣
A
∣
+
∣
B
∣
+
∣
C
∣
−
∣
A
∩
B
∣
−
∣
B
∩
C
∣
−
∣
C
∩
A
∣
+
∣
A
∩
B
∩
C
∣
.
|A\cup B\cup C|=|A|+|B|+|C|-|A\cap B|-|B\cap C|-|C\cap A|+|A\cap B\cap C|.
∣A∪B∪C∣=∣A∣+∣B∣+∣C∣−∣A∩B∣−∣B∩C∣−∣C∩A∣+∣A∩B∩C∣.
如果需要求不包含与
A
,
B
,
C
A,B,C
A,B,C 任意一个集合的元素个数,那么再用全集
S
S
S 的个数减去
∣
A
∪
B
∪
C
∣
|A\cup B\cup C|
∣A∪B∪C∣ 即可。
这是我们小学时常遇到的问题的基本解法。
其实小学时候也接触过容斥原理的对偶形式,这个我们下面会讲到。
我们知道很多的计数问题都可以表述为下面的形式:
设
S
S
S 是一个已知的有限集合,
P
1
,
P
2
,
⋯
,
P
n
P_1,P_2,\cdots,P_n
P1,P2,⋯,Pn 是
n
n
n 个与
S
S
S 中元素有关的性质。这里,对
S
S
S 中的每一个元素
x
x
x 及任意一个性质
P
i
P_i
Pi,均可确定
x
x
x 是否具有性质
P
i
P_i
Pi。要求
S
S
S 中不具有任一个性质
P
i
(
i
=
1
,
2
,
⋯
,
n
)
P_i(i=1,2,\cdots,n)
Pi(i=1,2,⋯,n) 的元素个数
N
N
N。
记
S
i
=
{
x
∣
x
∈
S
且
S
具有性质
P
i
}
(
i
=
1
,
2
,
⋯
,
n
)
S_i=\{x|x\in S\ 且\ S\ 具有性质\ P_i\}(i=1,2,\cdots,n)
Si={x∣x∈S 且 S 具有性质 Pi}(i=1,2,⋯,n),如果转换为一种更数学化的形式,那么上述问题就会变为:
已知
S
S
S 的
n
n
n 个子集
S
1
,
⋯
,
S
n
S_1,\cdots,S_n
S1,⋯,Sn,求
∣
S
1
‾
∩
⋯
∩
S
n
‾
∣
|\overline{S_1}\cap\cdots\cap\overline{S_n}|
∣S1∩⋯∩Sn∣,这里
S
i
‾
\overline{S_i}
Si 表示
∁
S
S
i
\complement_SS_i
∁SSi。
容斥原理便是用来解决上述问题的重要定理。如果 N N N 不易直接求出,但对于任意正整数 k k k 及 { 1 , 2 , ⋯ , n } \{1,2,\cdots,n\} {1,2,⋯,n} 的任一非空子集 i 1 , i 2 , ⋯ , i k {i_1,i_2,\cdots,i_k} i1,i2,⋯,ik, ∣ S i 1 ∩ ⋯ ∩ S i k ∣ |S_{i_1}\cap\cdots\cap S_{i_k}| ∣Si1∩⋯∩Sik∣ 的元素个数易于确定,那么我们就能够根据这些信息求出 N N N,这就是容斥原理的基本思想。
可能上面的这段数学描述比较绕,大概的意思就是说,如果 S 1 , ⋯ , S n S_1,\cdots,S_n S1,⋯,Sn 中任意 k k k 个集合之交的元素个数容易确定,那么我们就可以利用容斥原理确定 N N N 值。
容斥原理的表述如下:
设
S
1
,
S
2
,
⋯
,
S
n
S_1,S_2,\cdots,S_n
S1,S2,⋯,Sn 是
S
S
S 的子集,则
∣
S
1
‾
∩
S
2
‾
∩
⋯
∩
S
n
‾
∣
=
∣
S
∣
−
∑
i
=
1
n
∣
S
i
∣
+
∑
1
≤
i
1
<
i
2
≤
n
∣
S
i
1
∩
S
i
2
∣
−
⋯
+
(
−
1
)
k
∑
1
≤
i
1
<
⋯
<
i
k
≤
n
∣
S
i
1
∩
⋯
∩
S
i
k
∣
+
⋯
+
(
−
1
)
n
∣
S
1
∩
⋯
∩
S
n
∣
|\overline{S_1}\cap\overline{S_2}\cap\cdots\cap\overline{S_n}|=|S|-\displaystyle\sum_{i=1}^n|S_i|+\sum_{1\le i_1<i_2\le n}|S_{i_1}\cap S_{i_2}|-\cdots+(-1)^k\sum_{1\le i_1<\cdots<i_k\le n}|S_{i_1}\cap\cdots\cap S_{i_k}|+\cdots+(-1)^n|S_1\cap\cdots\cap S_n|
∣S1∩S2∩⋯∩Sn∣=∣S∣−i=1∑n∣Si∣+1≤i1<i2≤n∑∣Si1∩Si2∣−⋯+(−1)k1≤i1<⋯<ik≤n∑∣Si1∩⋯∩Sik∣+⋯+(−1)n∣S1∩⋯∩Sn∣.
我们把这个式子记作 ( 1 ) (1) (1) 。
二、如何证明容斥原理?
n = 2 n=2 n=2 或 3 3 3 的情形比较容易理解。可是,如果是四个及以上子集的容斥原理,我们就不能用韦恩图来表示了,我们要想严谨证明容斥原理,还需要利用组合数的内容。
1. 容斥原理的证明
在证明容斥原理之前,我们首先需要了解容斥原理的思想,其实在小学解题时已经渗透了。
我们再用更为清晰的语言描述一下计算
N
N
N 的过程:
在 S S S 中先排除掉具有性质 P i P_i Pi 的元素,剩下的元素个数显然小于 N N N,因为具有多个性质的元素被排除了多次。因此,再对每两个性质 P i 1 P_{i_1} Pi1 和 P i 2 P_{i_2} Pi2,补充同时具有这两个性质的元素,但是这样算出的元素个数又大于 N N N,因为具有超过两种性质的元素被重复计数 ( 1 + C k 2 ) (1+C_k^2) (1+Ck2) 次,但只被排除了 C k 1 C_k^1 Ck1 次。因此再对每三个性质 P i 1 , P i 2 P_{i_1},P_{i_2} Pi1,Pi2 和 P i 3 P_{i_3} Pi3,排除同时具有这三个性质的元素,这样得到的数又小于 N N N……
像这样反复地补充(“包含”→“容”)与排除(“排斥”→“斥”),最终得出所求的 N N N 值。
所以,容斥原理就是这样得名的,它同样也称作逐步淘汰公式。
到底如何证明?其实容斥原理的思想已经“揭示”了证明的方法。
证明: ∀ x ∈ S \forall x\in S ∀x∈S,若 x x x 不属于任一子集 S i ( i = 1 , 2 , ⋯ , n ) S_i(i=1,2,\cdots,n) Si(i=1,2,⋯,n),则 x x x 在 ( 1 ) (1) (1) 的右边的 ∣ S ∣ |S| ∣S∣ 中计入 1 1 1 次,,其余各项中均计入 0 0 0 次。因此这样的 x x x 在 ( 1 ) (1) (1) 的右边计入 1 1 1 次。
若 x x x 恰属于 S 1 , S 2 , ⋯ , S n S_1,S_2,\cdots,S_n S1,S2,⋯,Sn 中的 k ( k ≥ 1 ) k(k\ge1) k(k≥1) 个集合,则 x x x 在 ( 1 ) (1) (1) 中的右边总共被计入了 1 − C k 1 + C k 2 − ⋯ + ( − 1 ) k C k k = 0 1-C_k^1+C_k^2-\cdots+(-1)^kC_k^k=0 1−Ck1+Ck2−⋯+(−1)kCkk=0 次.这是二项式定理的运用。
( 1 − 1 ) 2 = C k 0 − C k 1 + C k 2 + C k 3 − ⋯ + ( − 1 ) k C k k (1-1)^2=C_k^0-C_k^1+C_k^2+C_k^3-\cdots+(-1)^kC_k^k (1−1)2=Ck0−Ck1+Ck2+Ck3−⋯+(−1)kCkk.综合上述讨论, ( 1 ) (1) (1) 的右端恰计数了 S S S 中不属于任一个 S i S_i Si 的元素个数,即 ( 1 ) (1) (1) 的左端。
2. 容斥原理对偶形式
∣ S 1 ∪ S 2 ∪ ⋯ ∪ S n ∣ = ∑ i = 1 n ∣ S i ∣ − ∑ 1 ≤ i 1 < i 2 ≤ n ∣ S i 1 ∩ S i 2 ∣ + ⋯ + ( − 1 ) k − 1 ∑ 1 ≤ i 1 < ⋯ < i k ≤ n ∣ S i 1 ∩ ⋯ ∩ S i k ∣ + ⋯ + ( − 1 ) n − 1 ∣ S 1 ∩ ⋯ ∩ S n ∣ |S_1\cup S_2\cup\cdots\cup S_n|=\displaystyle\sum_{i=1}^n|S_i|-\sum_{1\le i_1<i_2\le n}|S_{i_1}\cap S_{i_2}|+\cdots+(-1)^{k-1}\sum_{1\le i_1<\cdots<i_k\le n}|S_{i_1}\cap\cdots\cap S_{i_k}|+\cdots+(-1)^{n-1}|S_1\cap\cdots\cap S_n| ∣S1∪S2∪⋯∪Sn∣=i=1∑n∣Si∣−1≤i1<i2≤n∑∣Si1∩Si2∣+⋯+(−1)k−11≤i1<⋯<ik≤n∑∣Si1∩⋯∩Sik∣+⋯+(−1)n−1∣S1∩⋯∩Sn∣.
特别地,若 S 1 , S 2 , ⋯ , S n S_1,S_2,\cdots,S_n S1,S2,⋯,Sn 是集合 S S S 的一个分划,则该定理化为加法原理的集合形式: ∣ S ∣ = ∣ S 1 ∣ + ∣ S 2 ∣ + ⋯ + ∣ S n ∣ . |S|=|S_1|+|S_2|+\cdots+|S_n|. ∣S∣=∣S1∣+∣S2∣+⋯+∣Sn∣.
加法原理:做一件事,完成它的方法可分为 n n n 个互不相交的类,在第 i i i 类办法中有 m i m_i mi 种不同的方法( i = 1 , 2 , ⋯ , n i=1,2,\cdots,n i=1,2,⋯,n),则完成这件事共有 m 1 + m 2 + ⋯ + m n m_1+m_2+\cdots+m_n m1+m2+⋯+mn种不同的方法。
分划(划分): S S S 是一个集合, S 1 , S 2 , ⋯ , S n S_1,S_2,\cdots,S_n S1,S2,⋯,Sn 是 S S S 的一个分划,当且仅当 S 1 , S 2 , ⋯ , S n S_1,S_2,\cdots,S_n S1,S2,⋯,Sn 两两不交,且 S 1 ∪ S 2 ∪ ⋯ ∪ S n = S S_1\cup S_2\cup\cdots\cup S_n=S S1∪S2∪⋯∪Sn=S。
三、容斥原理引申出的相关定理
用容斥原理能够估计某些集合的元素个数,例如下面这题:
设 n n n 是正整数,集合 { 1 , 2 , ⋯ , 2 n } \{1,2,\cdots,2n\} {1,2,⋯,2n} 的一个排列 ( x 1 , x 2 , ⋯ , x 2 n ) (x_1,x_2,\cdots,x_{2n}) (x1,x2,⋯,x2n) 中,如果 ∣ x i − x i + 1 ∣ = n |x_i-x_{i+1}|=n ∣xi−xi+1∣=n 对某个 i ( 1 ≤ i ≤ 2 n − 1 ) i(1\le i\le 2n-1) i(1≤i≤2n−1) 成立,则称这一排列具有性质 P \rm P P。证明:具有性质 P \rm P P 的排列数比不具有性质 P \rm P P 的排列数多。
证明: 命题成立,当且仅当具有性质 P \rm P P 的排列个数大于全部排列的一般,即 1 2 ( 2 n ) ! \dfrac{1}{2}(2n)! 21(2n)!.
对 k ∈ { 1 , 2 , ⋯ , n } k\in\{1,2,\cdots,n\} k∈{1,2,⋯,n},记 S k S_k Sk 为 k k k 与 k + n k+n k+n 相邻的排列的集合,则 S = ⋃ k = 1 n S k S=\displaystyle\bigcup_{k=1}^nS_k S=k=1⋃nSk 是具有所有性质 P P P 的排列的集合。由容斥原理对偶形式,易知 ∣ S ∣ ≥ ∑ k = 1 n ∣ S k ∣ − ∑ 1 ≤ k < l ≤ n ∣ S k ∩ S l ∣ (2) |S|\ge\displaystyle\sum_{k=1}^n|S_k|-\sum_{1\le k<l\le n}|S_k\cap S_l|\tag2 ∣S∣≥k=1∑n∣Sk∣−1≤k<l≤n∑∣Sk∩Sl∣(2)而 ∣ S k ∣ = 2 ( 2 n − 1 ) ! |S_k|=2(2n-1)! ∣Sk∣=2(2n−1)!, ∣ S k ∩ S l ∣ = 2 2 ⋅ ( n − 2 ) ! |S_k\cap S_l|=2^2\cdot(n-2)! ∣Sk∩Sl∣=22⋅(n−2)!捆绑法,计算 ∣ S k ∣ |S_k| ∣Sk∣ 时,将 k k k 与 k + n k+n k+n 视为一个元素,共有 ( 2 n − 1 ) ! (2n-1)! (2n−1)! 种排列,但是还要乘上 k k k 与 k + n k+n k+n 的内部排列 2 ! = 2 2!=2 2!=2 种。
计算 ∣ S k ∩ S l ∣ |S_k\cap S_l| ∣Sk∩Sl∣ 是一样的。由 ( 2 ) (2) (2) 得到 ∣ S n ∣ ≥ n ⋅ 2 ⋅ ( 2 n − 1 ) ! − C n 2 ⋅ 2 2 ⋅ ( 2 n − 2 ) ! = 2 n ⋅ ( 2 n − 2 ) ! ⋅ n > 1 2 ( 2 n ) ! |S_n|\ge n\cdot2\cdot(2n-1)!-C_n^2\cdot2^2\cdot(2n-2)!\\\ \ \qquad\qquad\qquad=2n\cdot(2n-2)!\cdot n>\dfrac{1}{2}(2n)! ∣Sn∣≥n⋅2⋅(2n−1)!−Cn2⋅22⋅(2n−2)! =2n⋅(2n−2)!⋅n>21(2n)!.
这道题表明,容斥原理能够应用于一些不等式问题。
设
S
1
,
S
2
,
⋯
,
S
n
S_1,S_2,\cdots,S_n
S1,S2,⋯,Sn 是有限集
S
S
S 的子集,记
σ
0
=
∣
S
∣
\sigma_0=|S|
σ0=∣S∣,
σ
k
=
∑
1
≤
i
1
<
⋯
<
i
k
≤
n
∣
S
i
1
∩
⋯
∩
S
i
k
∣
(
1
≤
k
≤
n
)
\sigma_k=\displaystyle\sum_{1\le i_1<\cdots<i_k\le n}|S_{i_1}\cap\cdots\cap S_{i_k}|\ (1\le k\le n)
σk=1≤i1<⋯<ik≤n∑∣Si1∩⋯∩Sik∣ (1≤k≤n)。
如果我们希望能够用已知的
σ
i
(
i
=
0
,
1
,
⋯
,
n
)
\sigma_i(i=0,1,\cdots,n)
σi(i=0,1,⋯,n) 给出
∣
S
1
‾
∩
⋯
∩
S
n
‾
∣
|\overline{S_1}\cap\cdots\cap\overline{S_n}|
∣S1∩⋯∩Sn∣ 或者
∣
S
1
∪
⋯
∪
S
n
∣
|S_1\cup\cdots\cup S_n|
∣S1∪⋯∪Sn∣ 的比较精确的上(下)界估计,直接应用容斥原理或者容斥原理的对偶形式往往比较复杂,并且不太容易化简。
我们可以使用下面的定理 3 或定理 4。
1. 定理 3
设 k k k 是正整数, k ≤ n k\le n k≤n,若 k k k 是偶数,则 ∣ S 1 ‾ ∩ ⋯ ∩ S n ‾ ∣ ≤ σ 0 − σ 1 + σ 2 − ⋯ + ( − 1 ) k σ k (3) |\overline{S_1}\cap\cdots\cap\overline{S_n}|\le\sigma_0-\sigma_1+\sigma_2-\cdots+(-1)^k\sigma_k\tag3 ∣S1∩⋯∩Sn∣≤σ0−σ1+σ2−⋯+(−1)kσk(3)若 k k k 是奇数,则 ∣ S 1 ‾ ∩ ⋯ ∩ S n ‾ ∣ ≥ σ 0 − σ 1 + σ 2 − ⋯ + ( − 1 ) k σ k (4) |\overline{S_1}\cap\cdots\cap\overline{S_n}|\ge\sigma_0-\sigma_1+\sigma_2-\cdots+(-1)^k\sigma_k\tag4 ∣S1∩⋯∩Sn∣≥σ0−σ1+σ2−⋯+(−1)kσk(4)
这个定理想要表达的意思就是说,部分和 σ 0 − σ 1 + σ 2 − ⋯ + ( − 1 ) k σ k \sigma_0-\sigma_1+\sigma_2-\cdots+(-1)^k\sigma_k σ0−σ1+σ2−⋯+(−1)kσk 轮流地不小于及不超过 ∣ S 1 ‾ ∩ ⋯ ∩ S n ‾ ∣ |\overline{S_1}\cap\cdots\cap\overline{S_n}| ∣S1∩⋯∩Sn∣ 的实际值,这也可以视为容斥原理过程的表述。
如何证明定理 3?其实它的证明可以类似于容斥原理的证明进行,主要思想还是容斥原理的基本过程。
证明: ∀ x ∈ S \forall x\in S ∀x∈S,若 x x x 不属于任一集合 S i ( i = 1 , 2 , ⋯ , n ) S_i(i=1,2,\cdots,n) Si(i=1,2,⋯,n),则 x x x 在 ( 3 ) (3) (3)、 ( 4 ) (4) (4) 的左右两边均各计数 1 1 1 次,若 x x x 恰属于 S 1 , ⋯ , S n S_1,\cdots,S_n S1,⋯,Sn 中 r r r 个集合,则 x x x 在 ( 3 ) (3) (3)、 ( 4 ) (4) (4) 的左边计数 0 0 0 次,而在右边被计数了 1 − C r 1 + C r 2 − ⋯ + ( − 1 ) r C r k = ( − 1 ) k C r − 1 k 1-C_r^1+C_r^2-\cdots+(-1)^rC_r^k=(-1)^kC_{r-1}^k 1−Cr1+Cr2−⋯+(−1)rCrk=(−1)kCr−1k 次。
显然,上面的式子当 k k k 为偶数时不小于 0 0 0,当 k k k 为奇数时不大于 0 0 0,因此 ( 3 ) (3) (3) 和 ( 4 ) (4) (4) 得证。
* 注意到,如果 σ 1 , ⋯ , σ n \sigma_1,\cdots,\sigma_n σ1,⋯,σn 满足 σ 1 ≥ ⋯ ≥ σ n \sigma_1\ge\cdots\ge\sigma_n σ1≥⋯≥σn,则在 k k k 为偶数时,由不等式 ( − 1 ) k + 1 σ k + 1 + ( − 1 ) k + 2 σ k + 2 + ⋯ + ( − 1 ) n σ n = − ( σ k + 1 − σ k + 2 ) − ( σ k + 3 − σ k + 4 ) − ⋯ ≤ 0 (-1)^{k+1}\sigma_{k+1}+(-1)^{k+2}\sigma_{k+2}+\cdots+(-1)^n\sigma_n=-(\sigma_{k+1}-\sigma_{k+2})-(\sigma_{k+3}-\sigma_{k+4})-\cdots\le0 (−1)k+1σk+1+(−1)k+2σk+2+⋯+(−1)nσn=−(σk+1−σk+2)−(σk+3−σk+4)−⋯≤0 及容斥原理 ∣ S 1 ‾ ∩ ⋯ ∩ S n ‾ ∣ = σ 0 − σ 1 + σ 2 − ⋯ + ( − 1 ) n σ k = n |\overline{S_1}\cap\cdots\cap\overline{S_n}|=\sigma_0-\sigma_1+\sigma_2-\cdots+(-1)^n\sigma_k=n ∣S1∩⋯∩Sn∣=σ0−σ1+σ2−⋯+(−1)nσk=n,可以直接得出 ( 3 ) (3) (3), ( 4 ) (4) (4) 也可以用类似的方法证明。
尽管 σ 1 ≥ ⋯ ≥ σ n \sigma_1\ge\cdots\ge\sigma_n σ1≥⋯≥σn 并不是恒成立的,但是在很多情况下都是满足的,例如上面所说的关于排列性质 P \rm P P 的问题。在这些情况下,定理 3 及定理 4 可以更简单地建立关系。
为了估计正负交错的和,可以尝试运用下面的方法:
设
a
1
,
a
2
,
⋯
,
a
n
a_1,a_2,\cdots,a_n
a1,a2,⋯,an 为非负实数,若
a
1
≥
⋯
≥
a
n
a_1\ge\cdots\ge a_n
a1≥⋯≥an,则
0
≤
a
1
−
a
2
+
⋯
+
(
−
1
)
n
−
1
a
n
≤
a
1
.
0\le a_1-a_2+\cdots+(-1)^{n-1}a_n\le a_1.
0≤a1−a2+⋯+(−1)n−1an≤a1.设
S
n
S_n
Sn 表示上式中所说的和,则
n
n
n 为偶数时,
S
n
=
a
1
−
(
a
2
−
a
3
)
−
⋯
−
(
a
n
−
2
−
a
n
−
1
)
−
a
n
S_n=a_1-(a_2-a_3)-\cdots-(a_{n-2}-a_{n-1})-a_n
Sn=a1−(a2−a3)−⋯−(an−2−an−1)−an,
由
a
k
≥
a
k
+
1
a_k\ge a_{k+1}
ak≥ak+1 以及
a
n
≥
0
a_n\ge0
an≥0,可知
0
≤
S
n
≤
a
1
0\le S_n\le a_1
0≤Sn≤a1。
当
n
n
n 为奇数时,同理可知有
0
≤
S
n
≤
a
1
0\le S_n\le a_1
0≤Sn≤a1。
下面的定理 4 等价于定理 3。
2. 定理 4(定理 3 的等价形式)
设 k k k 是正整数, k ≤ n k\le n k≤n,若 k k k 是偶数,则 ∣ S 1 ∪ ⋯ ∪ S n ∣ ≥ σ 1 − σ 2 + σ 3 − ⋯ + ( − 1 ) k + 1 σ k (5) |S_1\cup\cdots\cup S_n|\ge\sigma_1-\sigma_2+\sigma_3-\cdots+(-1)^{k+1}\sigma_k\tag5 ∣S1∪⋯∪Sn∣≥σ1−σ2+σ3−⋯+(−1)k+1σk(5)若 k k k 是奇数,则 ∣ S 1 ∪ ⋯ ∪ S n ∣ ≤ σ 1 − σ 2 + σ 3 − ⋯ + ( − 1 ) k + 1 σ k (6) |S_1\cup\cdots\cup S_n|\le\sigma_1-\sigma_2+\sigma_3-\cdots+(-1)^{k+1}\sigma_k\tag6 ∣S1∪⋯∪Sn∣≤σ1−σ2+σ3−⋯+(−1)k+1σk(6)
四、一道高联问题
2010 年的高联 A 卷二试压轴问题
一种密码锁的密码设置是在正
n
n
n 边形
A
1
A
2
⋯
A
n
A_1A_2\cdots A_n
A1A2⋯An 的每个顶点处赋值
0
0
0 和
1
1
1 两个数中的一个,同时在每个顶点处涂染红、蓝两种颜色之一,使得任意相邻的两个顶点的数字或颜色中至少有一个相同。问:该种密码锁共有多少种不同的密码设置?
这道题如果想到要用容斥原理就不是很难。
个人解法(过程不是很规范):
对于相邻两点的设置,如果数值和颜色都不相同,那么我们就称这两点的设置是“相对的”。
设不加约束条件的设置密码锁的集合为 S S S,则 ∣ S ∣ = 4 n |S|=4^n ∣S∣=4n.
S i = { A i 与 A i + 1 的赋值是“相对的” } S_i=\{A_i与A_{i+1}的赋值是“相对的”\} Si={Ai与Ai+1的赋值是“相对的”}
这里约定 A n + 1 = A 1 A_{n+1}=A_1 An+1=A1。
那么 ∣ S i ∣ = 4 n − 1 |S_i|=4^{n-1} ∣Si∣=4n−1,对 1 ≤ k ≤ n − 1 1\le k\le n-1 1≤k≤n−1, ∣ S i 1 ∩ ⋯ ∩ S i k ∣ = 4 n − k |S_{i_1}\cap\cdots\cap S_{i_k}|=4^{n-k} ∣Si1∩⋯∩Sik∣=4n−k
对于 k = n k=n k=n,若 k k k 是偶数,则 ⋂ i = 1 n S i = 4 \displaystyle\bigcap_{i=1}^nS_i=4 i=1⋂nSi=4
若 k k k 是奇数,则 ⋂ i = 1 n S i = ∅ \displaystyle\bigcap_{i=1}^nS_i=\varnothing i=1⋂nSi=∅
由容斥原理, ∣ S 1 ‾ ∩ S 2 ‾ ∩ ⋯ ∩ S n ‾ ∣ = 4 n − C n 1 4 n − 1 + C n 2 4 n − 2 − ⋯ + ( − 1 ) n − 1 C n n − 2 4 1 + ( − 1 ) n C n n ε = 3 n + ( − 1 ) n ε − ( − 1 ) n |\overline{S_1}\cap\overline{S_2}\cap\cdots\cap\overline{S_n}|=4^n-C_n^14^{n-1}+C_n^24^{n-2}-\cdots+(-1)^{n-1}C_n^{n-2}4^1+(-1)^nC_n^n\varepsilon=3^n+(-1)^n\varepsilon-(-1)^n ∣S1∩S2∩⋯∩Sn∣=4n−Cn14n−1+Cn24n−2−⋯+(−1)n−1Cnn−241+(−1)nCnnε=3n+(−1)nε−(−1)n
其中 ε = { 4 , 2 ∣ k 0 , 2 ∤ k \varepsilon=\begin{cases} 4, 2\mid k\\ 0, 2\nmid k\\ \end{cases} ε={4,2∣k0,2∤k
所以 ∣ S 1 ‾ ∩ S 2 ‾ ∩ ⋯ ∩ S n ‾ ∣ = { 3 n + 3 , 2 ∣ k 3 n + 1 , 2 ∤ k |\overline{S_1}\cap\overline{S_2}\cap\cdots\cap\overline{S_n}|=\begin{cases} 3^n+3, 2\mid k\\ 3^n+1, 2\nmid k\\ \end{cases} ∣S1∩S2∩⋯∩Sn∣={3n+3,2∣k3n+1,2∤k
不就这样吗?
但我感觉标答写了一大串。。。
后话
参考:
《奥数教程》(高中第三分册)
知乎 - 密码锁,递推,组合,图
其实我没有学过图论
话说《奥数教程》里的定理 4 似乎写错了,原来是这样的:
设 k k k 是正整数, k ≤ n k\le n k≤n,若 k k k 是偶数,则 ∣ S 1 ∪ ⋯ ∪ S n ∣ ≥ σ 1 − σ 2 + σ 3 − ⋯ + ( − 1 ) k σ k (11) |S_1\cup\cdots\cup S_n|\ge\sigma_1-\sigma_2+\sigma_3-\cdots+(-1)^k\sigma_k\tag{11} ∣S1∪⋯∪Sn∣≥σ1−σ2+σ3−⋯+(−1)kσk(11)若 k k k 是奇数,则 ∣ S 1 ∪ ⋯ ∪ S n ∣ ≤ σ 1 − σ 2 + σ 3 − ⋯ + ( − 1 ) k σ k (12) |S_1\cup\cdots\cup S_n|\le\sigma_1-\sigma_2+\sigma_3-\cdots+(-1)^k\sigma_k\tag{12} ∣S1∪⋯∪Sn∣≤σ1−σ2+σ3−⋯+(−1)kσk(12)
看了一下,感觉不太对, ( − 1 ) k (-1)^k (−1)k 指数和下标应该相差1,所以应该改成 ( − 1 ) k + 1 (-1)^{k+1} (−1)k+1 或者 ( − 1 ) k − 1 (-1)^{k-1} (−1)k−1 才对。