莫比乌斯反演入门学习总结

前置技能点:

整除分块:

  现在我们想求:
∑i=1n⌊ni⌋ \sum_{i=1}^n {\lfloor\frac{n}{i}\rfloor} i=1nin

不妨先考虑 ⌊ni⌋\lfloor \frac n i\rfloorin的结果.
{i≤n,i只有n种可能,所以⌊ni⌋也只有n种可能i>n,虽然i有n−n种可能,但是⌊ni⌋≤n所以⌊ni⌋也只有n中可能 \begin{cases} i \leq \sqrt{n},i只有\sqrt{n}种可能,所以\lfloor \frac n i \rfloor 也只有 \sqrt n 种可能 \\i \gt \sqrt n ,虽然i有 n-\sqrt n种可能,但是\lfloor \frac n i \rfloor \le \sqrt n 所以\lfloor \frac n i \rfloor也只有\sqrt n 中可能 \end{cases} {in,in,inni>n,inn,inninn

既然如此,我们不妨根据 ⌊ni⌋\lfloor \frac n i \rfloorin 分块,然后每一块统一计算大小,这样我们在O(n)O\left ( \sqrt n \right )O(n) 的复杂度下求解了.

积性函数:

积性函数f(x)满足:任何x,y,如果gcd(x,y)=1,则f(xy)=f(x)f(y)积性函数f(x)满足: 任何x,y,如果 gcd(x,y) =1,则 f( xy) = f(x)f(y) f(x):x,ygcd(x,y)=1,f(xy)=f(x)f(y)

性质:

如果f(x),g(x)为积性函数,p为常数,则:如果f(x),g(x)为积性函数,p为常数,则:f(x),g(x),p,:
h(x)=fp(x)h(x)=f(xp)h(x)=f(x)g(x)h(x)=∑d∣xf(d)g(xd) \begin{aligned} h(x) &= f^p(x)\\ h(x) &= f(x^p)\\ h(x) &= f(x)g(x)\\ h(x) &= \sum_{d|x} f(d)g(\frac x d) \end{aligned} h(x)h(x)h(x)h(x)=fp(x)=f(xp)=f(x)g(x)=dxf(d)g(dx)
h(x)均为积性函数h(x)均为积性函数h(x)

常见的几个积性函数:

单数函数:ϵ(n)=[n==1];恒等函数:id(n)=n;常数函数:1(n)=1;除数函数:σk(n)=∑d∣ndk;如果k=0,可简写为d(n)欧拉函数:ϕ(n)=∑i=1n[gcd(i,j)==1];莫比乌斯函数:u(n)={1n=1(−1)kk为n的不同素因子个数,且每个素因子只拥有一个0otherwise \begin{aligned} 单数函数: \epsilon (n) &= [n==1];\\ 恒等函数: id(n) &= n;\\ 常数函数 :1(n) &= 1;\\ 除数函数: \sigma_{k}(n) &= \sum_{d|n} d^k;如果k=0,可简写为d(n)\\ 欧拉函数: \phi(n) &= \sum_{i=1}^n [gcd(i,j)==1];\\ 莫比乌斯函数:u(n) &= \begin{cases} 1 & n=1\\ (-1)^k & k为n的不同素因子个数,且每个素因子只拥有一个\\ 0 & otherwise\\ \end{cases} \end{aligned} :ϵ(n):id(n):1(n):σk(n):ϕ(n):u(n)=[n==1];=n;=1;=dndk;k=0,d(n)=i=1n[gcd(i,j)==1];=1(1)k0n=1kn,otherwise

Dirichlet卷积:

对于数论函数f(x),g(x):对于数论函数f(x),g(x):f(x),g(x):
(f∗g)n=∑d∣nf(d)g(⌊nd⌋) (f*g)_{n} = \sum_{d|n} f(d)g(\lfloor \frac n d \rfloor) (fg)n=dnf(d)g(dn)

卷积满足交换律,结合律.卷积满足交换律,结合律.,.

举例:

ϵ=u∗1d=1∗1σ=id∗1ϕ=id∗u \begin{aligned} \epsilon &=u * 1\\ d &= 1 * 1\\ \sigma &= id * 1\\ \phi &= id * u \end{aligned} ϵdσϕ=u1=11=id1=idu

莫比乌斯函数:

u(n)={1n=1(−1)kk为n的不同素因子个数,且每个素因子只拥有一个0otherwise u(n) = \begin{cases} 1 & n=1\\ (-1)^k & k为n的不同素因子个数,且每个素因子只拥有一个\\ 0 & otherwise\\ \end{cases} u(n)=1(1)k0n=1kn,otherwise

性质:莫比乌斯函数不仅是积性函数,且满足∑d∣nu(d)={1n=10n≠1 \begin{aligned}性质: 莫比乌斯函数不&仅是积性函数,且满足\\ \sum_{d|n} u(d) &= \begin{cases} 1 & n=1\\ 0 & n \neq 1\\ \end{cases}\\ \end{aligned} :dnu(d),={10n=1n=1
这个函数在反演中会很常见,经常性的需要求 前缀和 or O(1)查询,我们可以用素数筛O(n)预处理. 准确的来说,所有的积性函数都可以通过素数筛O(n)求出.但不同的积性函数的转移略有不同,这个函数在反演中会很常见,经常性的需要求\ \textbf{前缀和} \ or \ \textbf{O(1)查询},我们可以用素数筛O(n)预处理.\\ ~\\ 准确的来说,所有的积性函数都可以通过素数筛O(n)求出.但不同的积性函数的转移略有不同,, 前缀和 or O(1)查询,O(n). ,O(n).,

void getMu() {
  mu[1] = 1;
  for (int i = 2; i <= n; ++i) {
    if (!flg[i]) p[++tot] = i, mu[i] = -1;
    for (int j = 1; j <= tot && i * p[j] <= n; ++j) {
      flg[i * p[j]] = 1;
      if (i % p[j] == 0) {
        mu[i * p[j]] = 0; // 不同的积性函数可以这里会有差异.
        break;
      }
      mu[i * p[j]] = -mu[i];
    }
  }
}

莫比乌斯反演:

若f(n)=∑d∣ng(d),则g(n)=∑d∣nu(d)f(⌊nd⌋) 若f(n) = \sum_{d|n} g(d), \\ 则g(n) = \sum_{d|n} u(d)f(\lfloor \frac n d \rfloor) f(n)=dng(d),g(n)=dnu(d)f(dn)

证明:
f=g∗1两边同时卷积:f∗u=g∗1∗u利用结合律:f∗u=g\begin{aligned}f &= g*1\\ 两边同时卷积:\qquad f*u &=g*1*u\\ 利用结合律: \qquad f*u &=g \end{aligned} f:fu:fu=g1=g1u=g

反演结论:

[gcd(i,j)=1]  ⟺  ∑d∣gcd(i,j)u(d) 通过上面u(n)的定义,显然这个式子是成立的 [gcd(i,j)=1] \iff \sum_{d|gcd(i,j)} u(d) \\ ~\\ 通过上面u(n)的定义,显然这个式子是成立的 [gcd(i,j)=1]dgcd(i,j)u(d) u(n),

例题讲解:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值