前置知识
整除分块
把之前写的博客搬过来了
模型
求 \(\large\sum^{n}_ {i=1} \lfloor{\frac{n}{i}}\rfloor\)
假设 \(n\) 等于 10,我们可以列出下表:
\(\ i\) | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|
\(\frac{10}{i}\) | 10 | 5 | 3 | 2 | 2 | 1 | 1 | 1 | 1 | 1 |
如果我们的 \(n\) 更大时,我们可以发现 \(\frac{10}{i}\) 中有许多重复的地方。
我们可以将相同的分为一块,这样可以发现块不会超过 \(2\sqrt n\) 个。
证明:
我们设当前块的值为 \(m\):
当 \(m\le \sqrt n\) 时,\(\frac nm\) 总共的个数,不会超过 \(m\) 的个数,因此最多有 \(\sqrt n\) 个块。
当 \(m> \sqrt n\) 时,\(\frac nm\) 的取值应该在 \([1,\sqrt n]\) 之间,因此也最多有 \(\sqrt n\) 个块。
综上,块的个数不超过 \(2\sqrt n\)。
推导
我们需要找到每个块的左右端点,设我们已知这个块的左端点 \(l\),则考虑怎么找到右端点 \(r\)。
设这个块的值为 \(x\),那么对于块中的每个数 \(i\),则有 \(x=\lfloor{\frac{n}{l}}\rfloor=\lfloor{\frac{n}{i}}\rfloor\)。
那么 \(r=max(i)\),因为 \(i\times x\le n\),我们可以设 \(i\times x=n\) 以此来找到最大的 \(r\)。
则 \(\large r=\lfloor{\frac{n}{x}}\rfloor=\bigl\lfloor{\frac{n}{\lfloor{n/l}\rfloor}}\bigl\rfloor\)。
下一个块的 \(l'\) 就应该是 \(r+1\)。
积性函数
定义:积性函数指对于所有互质的整数 \(a\) 和 \(b\) 有性质 \(f(ab)=f(a)f(b)\) 的数论函数,且积性函数与积性函数的卷积还是积性函数。
一些常见的积性函数如:
\(1(n)=1\) 常数函数
\(ID(n)=n\) 单位函数
\(\epsilon(n)=[n==1]\) 单位元函数
\(d(n)=\displaystyle\sum_{d\mid n}1\),因子函数,\(n\) 的正因子的个数。
\(\sigma(n)=\displaystyle\sum_\limits{d\mid n}d\),因子和函数,\(n\) 的各个约数之和。
\(\varphi(n)=\displaystyle\sum^n_{i=1}[gcd(n,i)=1]\) 欧拉函数,表示比不大于 \(n\) 且与 \(n\) 互质的数的个数。
\(\mu(n)\) 莫比乌斯函数(等下会讲)
一些需要记得:
\((\mu* 1)=\epsilon\)
\((\varphi* 1)=ID\)
\((\mu* ID)=\varphi\)
狄利克雷卷积
我们需要定义两个积性函数的一个运算符号:$* $ 狄利克雷卷积。
这名字听起来有点高深,不过你可以将它想象成一个定义新运算。
定义:
两个数论函数 \(f\) 和 \(g\) 的狄利克雷卷积为:$$(f* g)=\displaystyle\sum_{d\mid n} f(d)\times g(\frac{n}{d})=\displaystyle\sum_{d\mid n} f(d)\times g(\frac{n}{d})$$
性质:
- 交换律 \(f* g=g* f\)
- 结合律 \(f* (g* h)=(f* g)* h\)
- 分配律 \(f* h+g* h=(f+g)* h\)
- 单位元 \(\epsilon * f=f\)
- \((xf)* g=x(f* g)\)
前三个和乘法的运算法则一样,可以简单来记。至于证明,我们对于 \(f* g\),也就是遍历每两个 \(n\) 的对应约数在两个积性函数中的值之积,当我们跟换左右两边或者顺序的时候,每个约数的贡献不会发生改变。
莫比乌斯函数
莫比乌斯函数 \(\mu(x)\) 的定义是:
\[\mu(x)=\begin{cases}1&(x=1)\\0&(p^2\mid x)\\(-1)^{\omega(x)}&(\omega(x)\texttt{表示 x 的质因子个数})\end{cases} \]也就是说,当 \(d=1\) 时,\(\mu(d)=1\);
当 \(d\) 有平方因子的时候,\(\mu(d)=1\);
当 \(d=\displaystyle\prod_{i=1}^k p_i\),\(p_i\) 为质数且互不相等时,则有 \(\mu(d)=(-1)^k\)。
莫比乌斯函数也有很多有趣的性质:
-
\(\displaystyle\sum_{d\mid n}\mu(d)=[n==1]\Rrightarrow \mu*I=\epsilon\)。
-
\(\dfrac{\varphi(n)}{n}=\displaystyle\sum_{d\mid n}\frac{\mu(d)}{d}\)(等会会证明)
然后就是线性筛筛 \(\mu\):
void Get_mu(int x){
isprime[1]=1;
mu[1]=1;
for(int i=2;i<=x;i++){
if(!isprime[i])
prime[++tot]=i,mu[i]=-1;
for(int j=1;j<=tot&&i*prime[j]<=x;j++){
isprime[prime[j]*i]=1;
if(i%prime[j]==0) break;//处理平方因子的情况,因为 i 里面有prime[j] 了,
//所以 $i*prime[j]$ 有平方因子,又由于 线性筛每个数只筛一个,那么不会有重复的情况,导致值不一样。
mu[i*prime[j]]=-mu[i];
}
}
}
欧拉函数
欧拉函数的定义是:比不大于 \(n\) 且与 \(n\) 互质的数的个数,也就等于
\[\varphi(n)=\displaystyle\sum^n_{i=1}[gcd(n,i)=1] \]然后我们也可以把它表示为狄利克雷卷积的形式:
\[\varphi*1=ID \]然后我们将它左右两边同时卷上一个 \(\varphi\)。
由于我们知道:
\[\because(\mu*1)=\epsilon \]\[\therefore\varphi*1*\mu=ID*mu \]\[\therefore \varphi*\epsilon=ID*\mu \]\[\therefore \varphi=ID*\mu \]\[\therefore \varphi(n)=\displaystyle\sum_{d\mid n}\mu(d)\times \frac{n}{d} \]两边同时除以 \(n\) 我们就能得到:$$\dfrac{\varphi(n)}{n}=\displaystyle\sum_{d\mid n}\frac{\mu(d)}{d}$$(上面莫比乌斯函数的性质二就得到证明了)。
莫比乌斯反演
定理:若 \(F(n)\) 与 \(f(n)\) 是两个定义在非负整数集合上的两个积性函数,且满足条件:
\[F(n)=\displaystyle\sum_{d\mid n}f(d) \]那么有结论:
\[f(n)=\sum_{d\mid n}\mu(d)F(\lfloor{\frac{n}{d}}\rfloor) \]证明:
因为我们知道
\[F(n)=\displaystyle\sum_{d\mid n}f(d) \]那么可以将这个式子表示为:
\[F=f*I \]想欧拉函数中的式子一样再将左右两边同时卷上 \(\mu\),可得:
\[\because F*\mu=f*1*\mu \]\[\therefore F*\mu=f*\epsilon=f \]\[\therefore f(n)=\displaystyle\sum_{d\mid n}\mu(d)F(\lfloor{\frac{n}{d}}\rfloor) \]\[\Rightarrow f(n)=\displaystyle\sum_{n\mid d}\mu(\frac{d}{n})F(d) \] 标签:frac,函数,乌斯,sum,mid,mu,反演,莫比,displaystyle From: https://www.cnblogs.com/pdpdzaa/p/17754451.html