【汉化】筛分法
5 筛分法
筛分法本质上有两个变体。为确定一个集合的大小,我们会多算,然后从这个数中减去,再加上,再减去……直到元素的个数最终被精确确定。一个典例就是 容斥原理。 在第二个变体中,我们会通过合适的权重筛掉不想要的元素。这就是对合原理背后的本质思路。
5.1 容斥
考虑一个有限集 \(X\) 和三个子集 \(A,B,C.\) 要算出 \(|A \cup B \cup C|\),我们会求和 \(|A|+|B|+|C|.\) 除非 \(A,B,C\) 互无交集,否则我们就多算了,因为 \(A \cap B,A \cap C,B \cap C\) 被算了两次。所以我们减去 \(|A \cap B|+|A \cap C|+|B \cap C|.\) 现在这个数就对了,除了 \(A \cap B \cap C\) 里的元素。他们被加上了三次,又被减去了三次。因此答案为
或者说,
下面是通式。
使 \(A_1,A_2, \dots ,A_n\) 为 \(X\) 的子集,那么
为证明,我们检查一个元素 \(x \in X\) 被算重了几次。如果 \(x \not \in \bigcup_{i=1}^n A_i\),那么它在方程的两边都算了一次。假设 \(x \in \bigcup_{i=1}^n A_i\),更精确来说, \(x\) 恰好在 \(A_i\) 的 \(m\) 个中。方程左边为 \(0,\) 对右边,由于 \(m \geq 1,\) 我们由 \((1)\) 得
由这个基本的解释可得容斥原理。假设给定一个集合 \(X\) 作为 论域,和一个属性集 \(E=\{ e_1, \dots ,e_n \},X\) 可能有,也可能没有这些属性。使 \(A_i\) 为享有属性 \(e_i\)(可能还有其他属性)的元素的集合。那么 \(\left| X \setminus \bigcup_{i=1}^n A_i \right|\) 就是 不 拥有 任何 属性的元素的数量。现在考虑 \((1)\) 右边的写法。显而易见,\(A_{i_1} \cap \cdots \cap A_{i_t}\) 就是拥有属性 \(e_{i_1}, \dots, e_{i_t}\) (可能还有其他属性) 的集合。使用如下记法:
我们得到了容斥原理。
容斥原理. 使 \(X\) 为一个集合,且 \(E= \{ e_1, \dots , e_n \}\) 为属性集。那么
在 \(N_{\supseteq T}\) 只取决于集合大小 \(\left| T \right| = k\) 时,这个方程甚至会变得更简单。由于 \(\left| T \right| = k,\) 我们就可以写作 \(N_{\supseteq T} = N_{\geq k},\) 并称呼 \(E\) 为 同质 属性集。我们马上可得在这种情况下 \(N_{=T} = N_{=k}\) 也只取决于 \(T\) 的势。因此对于同质属性集,有
例 1. 最早的例子聚焦于欧拉函数 \(\varphi = \# \{ d: 1 \leq d \leq n, \gcd (d,n)=1 \}\) 的计算。令 $n=p_1^{a_1} \cdots p_t^{a_t} $ 为 \(n\) 的质因数分解。让 \(X= \{ 1,2, \dots ,n \}\) 且 \(e_i\) 代表 \(d\) 整除 \(p_i.\) 显而易见,\(N_{= \emptyset} = \varphi (n),N_{\supseteq T}\) 是 \(\leq n\) 且是 \(\prod_{e_i \in T} p_i\) 的倍数的整数个数。因此 \(N_{\supseteq T} = \dfrac{n}{\prod_{e_i \in T} p_i},\) 且由 \((3)\) 得
即
举个例子,对于 \(n=20=2^2 \cdot 5,\) 有
小于 \(20\) 且与 \(20\) 互质的数有 \(1,3,7,9,11,13,17,19. \ (5)\) 暗示了当 \(m\) 与 \(n\) 互质时 \(\varphi (mn) = \varphi (m) \varphi (n).\)




浙公网安备 33010602011771号