标签:而且 prim 容斥 展开 lin 写法 函数 回顾 解决
设\(S_1,S_2,\cdots,S_n\)为有限集,\(|S|\)表示集合\(S\)的大小,则:
\[
\left | \bigcup_{i=1}^nS_i \right |=\sum_{i=1}^n|S_i|-\sum_{1\leq i <j \leq n}|S_i \cap S_j|+\sum_{1\leq i<j<k \leq n}|S_i \cap S_j \cap S_k|+\cdots
\]
\[
+(-1)^{n+1}|S_1\cap \cdots \cap S_n| \tag{1}
\]
\[
\left | \bigcap_{i=1}^nS_i \right |=\sum_{i=1}^n|S_i|-\sum_{1\leq i <j \leq n}|S_i \cup S_j|+\sum_{1\leq i<j<k \leq n}|S_i \cup S_j \cup S_k|+\cdots
\]
\[
+(-1)^{n+1}|S_1\cup \cdots \cup S_n| \tag{2}
\]
这个式子也可以这样写:
\[
\left | \bigcup_{i=1}^nS_i\right |=\sum_{T \subseteq \{1,2,\cdots,n\}}(-1)^{|T|+1}\left | \bigcap_{k\in T}S_k\right | \tag{3}
\]
\[
\left | \bigcap_{i=1}^nS_i\right |=\sum_{T \subseteq \{1,2,\cdots,n\}}(-1)^{|T|+1}\left | \bigcup_{k\in T}S_k\right | \tag{4}
\]
虽然这样的写法看起来不那么严谨,而且也没有优雅多少,但是它还是反应了问题的本质。所谓容斥原理,就是几个集合的加加减减,把多计算的减去,把多减的加回来。
回顾我们学过的欧拉函数的表达式,我们现在可以解决它了。
\[\varphi(n)=|\{i=1,2,\cdots,n \mid n\bot i\}|\]
注意到对于\(n\)的一个正因子\(z>1\),\(1\)~\(n\)中含有\(\frac{n}{z}\)个\(z\)的倍数。这\(\frac{n}{z}\)个数\(x\)和\(n\)有\(\gcd(n,x)=z\),可以构成一个集合\(\{x\}\)。定义这个集合叫做\(z\)的\(n-\)限制约数集,简称\(z\)的约数集。
对于\(\gcd(x,n)=z_1z_2\)的集合\(\{x\}\),可以看成是原来\(z_1,z_2\)对应的约数集做一个交集。\(z_1,z_2\)的约数集的交集是\(z_1z_2\)的约数集,大小是\(\frac{n}{z_1z_2}\)。多个数也是同理。
\([1,n]\)中和\(n\)不互质的数可以由\(n\)各正因子的约数集通过并集得到,由容斥原理:
\[
|\{i=1,\cdots,n | \gcd(n,i)>1\}|=\sum_{T \subseteq \{p_1,\cdots,p_k\},T \neq \varnothing}(-1)^{|T|+1}\dfrac{n}{\prod_{c\in T}c}
\]
其中\(p_i\)是\(n\)的质因子。
由减法原理,从\(1,\cdots,n\)中除去上面的所有数,就得到了我们想要的集合。它的大小是:
\[
n-\sum_{T \subseteq \{p_1,\cdots,p_k\},T\neq \varnothing}(-1)^{|T|+1}\dfrac{n}{\prod_{c\in T}c}
\]
\[
=(-1)^{0}\dfrac{n}{1}+\sum_{T \subseteq \{p_1,\cdots,p_k\},T\neq \varnothing}(-1)^{|T|}\dfrac{n}{\prod_{c\in T}c}
\]
\[
=n\sum_{T \subseteq \{p_1,\cdots,p_k\}}\prod_{c \in T}(-\dfrac{1}{c})
\]
\[
=n\prod_{i=1}^{k}{(1-\dfrac{1}{p_i})}
\]
我们也得到了欧拉函数的表达式:
\[
\varphi(n)=n\prod_{\text{prime }p | n}(1-\frac{1}{p}) \tag{5}
\]
其中从第三步推到第四步用了一个展开的公式:
\[\prod_{i=1}^{n}(1+b_i)=\sum_{T\subseteq \{b_1,\cdots,b_n\}}\prod_{c\in T}c\]
标签:而且 prim 容斥 展开 lin 写法 函数 回顾 解决
原文地址:https://www.cnblogs.com/LinearODE/p/10699953.html