莫比乌斯反演自我击毙进程1-1
莫比乌斯反演
前情提要:
关于莫比乌斯翻译,是真的懵逼吾死,莫比乌斯函数(好理解),狄利克雷卷积(能懂不会用),莫比乌斯反演(队友泪两行),杜教筛(呵呵),因为看了两天自己不能自理的推出来,所以写个博客帮助下理解,懂了就改。。。。。。。
积性函数:
- 积性函数:对于所有互质的整数都有$f(ab)=f(a)f(b)$的数论函数。
- 完全积性函数:对于任意的整数都满足$f(ab)=f(a)f(b)$的数论函数
- 常用的积性函数:(常用到几乎你要遇到的题就是n选i个)
- $1(n)$:不变函数$1(n)=1$;(完全积性) (用1直接写比较直接,后面用$I$来代替,怎么也得给个符号让他升点品格)
- $Id(n)$:单位函数$Id(n)=n$;(完全积性)
- $Idk(n)$:幂函数,对于任何复数、实数k,定义为$Idk(n) = n^k $;(完全积性)
不是义务教育漏洞的以上函数完全能秒懂,当然这只是万恶的开始
- $\epsilon (n)$:单位元,记:$\epsilon (n)=[n==1]$,其定义为:当且仅当$n=1$时,$\epsilon (n)=1$,否则为0。
别称为“对于狄利克雷卷积的乘法单位”;(完全积性)
- $μ(n)$: 莫比乌斯函数,(积性函数) $ \mu(n)\begin{cases}
& \text 1\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ n=1 \\
& \text(-1)^{k} \ \ \ \ \ \ \ \ \ \ \ \ n=p _{1},p_2,p_3,p_4...,p_k (p_i为n的质数因子)\\
& \text0 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 其他
\end{cases}$ - $φ(n)$:欧拉函数,在数论中,$φ(n)$表示小于n且与n互质的数的个数。
狄利克雷卷积(∗):
狄利克雷卷积,记符号∗,是函数与函数之间的关系;
定义积性函数$h(n)=f(n)*g(n)$
$h(n)=\sum_{d|n}^{}f(d)g(\frac{n}{d})$
或者
$h(n)=\sum_{\underset{a,b>0}{ab=n}}^{}f(a)g(b)$
狄利克雷卷积具有以下性质:
- 交换律$f*g=g*f$
- 结合率$h*(g*f)=f*(h*g)$
- 对于所有数论函数,都满足$f(n)*\epsilon (n)=\epsilon (n)*f(n)=f(n)$,这好像是个没用的废话,其实巨有用
- 当$f(n),g(n)$为积性函数的时候,$f(n)*g(n)$也为积性函数,当$h(n)$为积性函数,$g(n)$为积性函数时,$f(n)$也为积性函数
- 如果 $g$为完全积性函数,且$h=f*g$,则$f=h*\mu g$
即若:
$h(n)=\sum_{d|n}^{}f(d)\cdot g(\frac{n}{d})$
则
$f(n)=\sum_{d|n}^{}h(d)\mu(\frac{n}{d})g(\frac{n}{d})$
具体怎么推的,推不出来,暂时先记着吧。如果用$1(n)$来替换$g(n)$其实就和莫比乌斯反演的推论一样。
常用的狄利克雷卷积关系有:
$\mu * I= \epsilon $ 即 $\sum_{d|n}^{}\mu(d)=\begin{cases}
& \text1 \ \ \ \ n=1 \\
& \text0 \ \ \ \ n>1\end{cases}$
$\varphi * I=N $ (其中N(n)=n) 即 $\sum_{d|n}^{}\varphi (d)=n$
$\mu*N=\varphi $ 即 $\sum_{d|n}^{}\mu(d)(\frac{n}{d})=\sum_{d|n}d\mu(\frac{n}{d})=\varphi (n)$
简单的来证一下这个吧
$ \varphi *I=N $
$\rightarrow $ $\varphi *I*\mu=N*\mu$
$ \rightarrow$ $\varphi *\epsilon=N*\mu$
$\rightarrow $ $ \varphi=N*\mu $ 其中$N=n,即为Id(n)$
莫比乌斯反演:
莫比乌斯反演是数论中十分重要的内容,常用于解决组合数的问题,很常见的有$gcd(i,j)$的问题。
对于莫比乌斯反演其实一年前我就看过一些文章,然后没有然后了,这次本着不是你活就是我亡的大无畏态度,我A了上去,因为不是专门学数学的,这玩意啃起来还是挺有(耗)意(生)思(命)的,没事后面还有一大推数论知识呢o(╥﹏╥)o,别倒在这就行。
言归正传,关于莫比乌斯反演,主要的预备知识已经介绍完了,那么莫比乌斯反演的结论我先摆出来:
$f(n)=\sum_{d|n}\mu(d)F(\frac{n}{d})$
反演前的函数是$F(n)=\sum_{d|h}f(n)$ 关于F(n)和f(n)的关系举例,dudu,就懂了。
为什么是这样呢,推论过程看着上面欧拉函数和莫比乌斯函数推演的过程自行脑补。
然后到这里,你会惊奇的发现,莫比乌斯反演的过程,啪,会了!
对于莫比乌斯反演需要求莫比乌斯函数
简单的题,或者说不恶心的的题,用线筛就可以了,否则就需要用到杜教筛、Min_25筛什么了。
这里给一段线筛莫比乌斯数的代码,其实就是线筛+$\mu$的组合
int prim[N];
bool vis[N];
int cnt;
int mu[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]<=n/i;j++)
{
vis[prim[j]*i]=true;
if(i%prim[j]==0)
{
mu[i*prim[j]]=0;
break;
}
mu[i*prim[j]]=-mu[i];
}
}
}

浙公网安备 33010602011771号