《永劫無間》胡桃使用心得
莫比烏斯反演
前置知識:容斥 整除分塊
莫比烏斯函式
設正整數 \(N\) 按照算術基本定理分解質因數為 \(N=\Pi_{i=1}^m p_i^{c_i}\) ,定義函式:
\[\begin{equation} \mu(N)= \left\{ \begin{array}{lr} 0,&\exist i\in[1,m],c_i>1\\ 1,&m\equiv 0(\bmod 2),\forall i\in[1,m],c_i=1\\ -1,&m\equiv 1(\bmod 2),\forall i\in[1,m],c_i=1\\ \end{array} \right. \end{equation} \]我們稱 \(\mu(N)\)
通俗地講,當 \(N\) 包含相等的質因子時, \(\mu(N)=0\)
當 \(N\) 的所有質因子各不相同時,若 \(N\) 有偶數個質因子,\(\mu(N)=1\)
若 \(N\) 有奇數個質因子,\(\mu(N)=-1\)
它有一些性質:
-
對於任意正整數 \(n\) ,\(\sum_{d|n}\mu(d)=[n=1]\)
( \([n=1]\) 表示只有當 \(n=1\) 成立時,返回值為 \(1\);否則,值為 \(0\))
簡單地證明一下:
\(n=1\)
對於 \(n\neq1\) 的情況:
證明一:對於一個 \(p_i\) 強制選或不選,其他隨便,會產生 奇數/偶數 個質因子兩種情況,抵消為 \(0\)
證明二:若 \(d\) 中含 \(p_i^{a_i},a_i>=2\) ,即 \(\mu(d)=0\) 忽略
那麼, \(\mu\) 的取值僅僅與質因數個數有關
\((i)\) \(n\) 有奇數個(\(x\)個)質因數
\(\sum_{d|n}\mu(d)=-1\times(C_x^1+C_x^3+C_x^5...+C_x^x)+(C_x^2+C_x^4+...+C_x^{x-1})\)
又有:\(C_x^y=C_x^{x-y}(y<x)\)
\((ii)\) \(n\) 有偶數個質因數:同理。
- 對於任意正整數 \(n\),\(\sum_{d|n}\frac{μ(d)}d=\frac{ϕ(n)}n\)
從略。(不會)
程式實現並不難,我們可以線上性篩素數的程式上略作修改,便可以篩出 \(μ\) 函式
void get_mu(int n)
{
mu[1]=1;
for(int i=2;i<=n;i++)
{
if(!vis[i]){prim[++cnt]=i;mu[i]=-1;}
for(int j=1;j<=cnt&&prim[j]*i<=n;j++)
{
vis[prim[j]*i]=1;
if(i%prim[j]==0)break;
else mu[i*prim[j]]=-mu[i];
}
}
}
莫比烏斯反演
定理:\(F(n)\) 和 \(f(n)\) 是定義在非負整數集合上的兩個函式,並且滿足條件:\(F(n)=\sum_{d|n}f(d)\)
那麼存在一個結論:\(f(n)=\sum_{d|n}\mu(d)F(\lfloor \frac nd \rfloor)\)
即莫比烏斯反演定理
我們可以通過定義證明它:
\[\sum_{d|n}\mu(d)F(\lfloor \frac nd \rfloor)=\sum_{d|n}\mu(d)\sum_{i|\lfloor\frac nd\rfloor}f(i)=\sum_{i|n}f(i)\sum_{d|\lfloor\frac nd\rfloor}\mu(d)=f(n) \]它的另外一種形式是:當 \(F(n)\) 和 \(f(n)\) 滿足:\(F(n)=\sum_{n|d}f(d)\)
可以推出:\(f(n)=\sum_{n|d}\mu(\frac dn)F(d)\)
感覺這個式子,可能在莫比烏斯反演中更加好用。