算法导论B.1 Exercises 答案
B.1-1

B.1-2
考虑使用数学归纳法进行证明。
已知两个集合下的德摩根律$\overline{B\cap C}=\overline{B}\cup\overline{C},\overline{B\cup C}=\overline{B}\cap \overline{C}$是成立的。
那么假设$\overline{A_1\cap A_2\cap\dots\cap A_n}=\overline{A_1}\cup\overline{A_2}\cup\dots\cup\overline{A_n}$成立,考虑如下等式:
$\begin{aligned}
\overline{A1\cap A_2\cap\dots\cap A_n\cap A{n+1}}&=\overline{(A1\cap A_2\cap\dots\cap A_n)\cap A{n+1}}\
&=\overline{A1\cap A_2\cap\dots\cap A_n}\cup \overline{A{n+1}}\
&=\overline{A1}\cup\overline{A_2}\cup\dots\cup\overline{A_n}\cup \overline{A{n+1}}
\end{aligned}$
因此对于$n+1$的情况成立。
假设$\overline{A_1\cup A_2\cup\dots\cup A_n}=\overline{A_1}\cap\overline{A_2}\cap\dots\cap\overline{A_n}$成立,考虑如下等式:
$\begin{aligned}
\overline{A1\cup A_2\cup\dots\cup A_n\cup A{n+1}}&=\overline{(A1\cup A_2\cup\dots\cup A_n)\cup A{n+1}}\
&=\overline{A1\cup A_2\cup\dots\cup A_n}\cap \overline{A{n+1}}\
&=\overline{A1}\cap\overline{A_2}\cap\dots\cap\overline{A_n}\cap \overline{A{n+1}}
\end{aligned}$
因此对于$n+1$的情况同样也成立。
$\star$ B.1-3
此处使用一个临时符号$\mathbb{N}_n^+$表示正整数集合${1,2,3,\dots,n}$。
考虑使用数学归纳法证明这个定理。
当$n=2$时,容斥原理$|A_1\cup A_2|=|A_1|+|A_2|-|A_1\cap A_2|$成立。
当$n>1$时,假设$n-1$的情况成立,也就是有:
$\displaystyle{\left |\bigcup{i=1}^{n-1} A_i\right|=\sum{S \subseteq \mathbb{N}{n-1}^+,S\neq \varnothing} (-1)^{|S|+1}\cdot \left|\bigcap{i\in S}A_i\right|}$
现在考虑证明$n$的情况,那么有
$\begin{aligned}
\left |\bigcup{i=1}^{n} A_i\right|&=\left |\left(\bigcup{i=1}^{n-1} Ai\right) \cup A_n\right|\
&=\left |\bigcup{i=1}^{n-1} Ai\right|+|A_n|-\left |\left(\bigcup{i=1}^{n-1} Ai\right) \cap A_n\right|\
&=\left |\bigcup{i=1}^{n-1} Ai\right|+|A_n|-\left |\bigcup{i=1}^{n-1} (Ai \cap A_n)\right|&\qquad(A)\
&=\sum{S \subseteq \mathbb{N}{n-1}^+,S\neq \varnothing} (-1)^{|S|+1}\cdot \left|\bigcap{i\in S}Ai\right|+|A_n|-\sum{S \subseteq \mathbb{N}{n-1}^+,S\neq \varnothing} (-1)^{|S|+1}\cdot \left|\bigcap{i\in S\cup{n}}Ai\right|&\
&=\sum{S \subseteq \mathbb{N}{n-1}^+,S\neq \varnothing}\left( (-1)^{|S|+1}\cdot \left|\bigcap{i\in S}Ai\right|+ (-1)^{|S|+1+1}\cdot \left|\bigcap{i\in S\cup{n}}Ai\right|\right) +|A_n|\
&=\sum{S \subseteq \mathbb{N}{n}^+,S\neq \varnothing,S\neq {n}}\left( (-1)^{|S|+1}\cdot \left|\bigcap{i\in S}Ai\right|\right) +|A_n|&\qquad(B)\
&=\sum{S \subseteq \mathbb{N}{n}^+,S\neq \varnothing} (-1)^{|S|+1}\cdot \left|\bigcap{i\in S}A_i\right|
\end{aligned}$
因此$n$的情况也成立。
其中,步骤$(A)$使用了分配律,步骤$(B)$则是将$\mathbb{N}{n-1}^{+}$的所有非空子集,都添加上一个元素$n$后,和原来的$\mathbb{N}{n-1}^{+}$的所有非空子集,共同组成$\mathbb{N}_{n}^{+}$的所有非空子集(除了集合${n}$)。
B.1-4
假设奇数集合是$O$,那么定义一个从集合$\mathbb{Z}$到$O$的映射$f(k)$:
$f(k)=2k+1$
在集合$\mathbb{Z}$中的每个元素恰好能映射到$O$中的每个元素。由于集合$\mathbb{Z}$是可数的,因此集合$O$也是可数的。
B.1-5
对于一个集合$S$中的任何元素$x$,它在$S$的每一个子集中,都存在$2$个选择:出现在这个子集,或者是不出现在这个子集。
对于集合$S$中的$|S|$个元素,它们都有着平等的选择。只要存在一个元素的选择不一样,那么最终产生的子集也不一样。因此,$S$的幂集的大小为$2^{|S|}$。
B.1-6
当$n=1$时,元组$b_1=(a_1)$。
当$n>1$时,元组$b{n-1}=(a_1,a_2,\dots,a{n-1})$已经定义,在$b_{n-1}$后面再多添加一个元素$a_n$即可形成$b_n$,即
$bn=(b{n-1},an)=((a_1,a_2,\dots,a{n-1}),an)=(a_1,a_2,\dots,a{n-1},a_n)$