[学习笔记] 数论函数(欧拉函数以及莫比乌斯反演)

数论菜狗鼓起勇气,学习了莫比乌斯反演之后,——发现自己连菜狗都不是。。。

一些基本的数论函数的定义

  • \(id(n)=n\)

  • \(1(n)=1\)

  • \(\epsilon(n)=\left\{\begin{array}{rcl}1&n=1\\0&n\neq 1\end{array}\right.\)

  • \(d(n)=\sum_{d|n}1\)

  • \(\sigma(n)=\sum_{d|n}d\)

这几个数论函数都是积性函数,其中前三个为完全积性函数。

(积性函数满足\(f(a\times b)=f(a)\times f(b)\)\(gcd(a,b)=1\),而完全积性函数满足\(f(a\times b)=f(a)\times f(b)\),无需满足\(gcd=1\)的条件)


狄利克雷卷积

\((f*g)_{(n)}=\sum_{d|n}f(d)\times g(\frac{n}{d})\)

这东西满足交换律、结合律、分配律。


  • 交换律的证明:

    \((f*g)_{{n}}=\sum_{d|n}f(d)\times g(\frac{n}{d})=\sum_{d|n}f(\frac{n}{d})\times g(d)=(g*f)_{(n)}\)


  • 结合律的证明:

    \(((f*g)*h)_{(n)}=\sum_{d|n}h(\frac{n}{d})\sum_{k|d}f(k)\times g(\frac{d}{k})\)

    \(\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\sum_{d|n}\sum_{k|d}f(k)\times g(\frac{d}{k})\times h(\frac{n}{d})\)

    \(\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\sum_{k|n}\sum_{q|\frac{n}{k}}f(k)\times g(q)\times h(\frac{n}{kq})\)

    \(\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\sum_{k|n}f(k)\sum_{q|\frac{n}{k}}g(q)\times h(\frac{n}{kq})\)

    \(\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =(f*(g*h))_{(n)}\)


  • 分配律的证明:

    \((f*(g+h))_{(n)}=\sum_{d|n}f(d)\times(g(\frac{n}{d})+h(\frac{n}{d}))\)

    \(\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\sum_{d|n}f(d)\times g(\frac{n}{d})+f(d)\times h(\frac{n}{d})\)

    \(\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =(f*g)_{(n)}+(f*g)_{(n)}\)


  • \(f*\epsilon=f\),很简单,不证了。

  • 一个积性函数,卷上另一个积性函数,还是积性函数。

    证明:

    \(n=a\times b\)\((a,b)=1\)\(f\)\(g\)为两个积性函数,\(h=f*g\)

    \(h(n)=\sum_{T|n}f(T)\times g(\frac nT)\)

    \(~~~~~~~~~=\sum_{d_1|a,d_2|b}f(d_1)\times f(d_2)\times g(\frac{a}{d_1})\times g(\frac{b}{d_2})\)

    \(~~~~~~~~~=\sum_{d_1|a}f(d_1)\times g(\frac a{d_1})\sum_{d_2|b}f(d_2)\times g(\frac b{d_2})\)

    \(~~~~~~~~~=h(a)\times h(b)\)

    证毕


\(\varphi\)函数的定义

\(\varphi (n)\)的定义为:\(1-n\) 中所有与\(n\)互质的数的个数。


\(\varphi\)的积性及证明

\(\varphi\)是一个积性函数

我们把\(1-a\times b\)这些数写成一个长方形:

\(\left(\begin{array}{cc}1&2&...&a\\a+1&a+2&...&2a\\.&.&...&.\\.&.&...&.\\.&.&...&.\\(b-1)a+1&(b-1)a+2...&...&ab\end{array}\right)\)

对于每一行:

  • 因为\((a,b)=1\)所以每一行都有\(\varphi(a)\)个数与\(a\)互质。

对于每一列:

  • 因为这\(b\)个数\(\%b\) 的余数互不相同,所以每一列都会有\(\varphi(b)\)个数与\(b\)互质。

综上:\(\varphi(a\times b)=\varphi(a)\times\varphi(b)\),即\(\varphi\)为积性函数。

\(\varphi\)函数的一些性质

  • 如果\(\varphi (n)\)\(n\)是一个质数,设\(n=p^c\),那么\(\varphi(n)=p^c-p^{c-1}\)。(不证了)

  • \(\varphi(n)=n\times\prod_{i=1}^k1-\frac{1}{p_i}\)

    证明:

    \(n=\prod_{i=1}^{k}p_i^{c_i}\)

    \(\varphi(n)=\prod_{i=1}^k\varphi(p_i^{c_i})\)

    \(\varphi(n)=\prod_{i=1}^kp_i^{c_i}\times(1-\frac{1}{p_i})\)

    \(\varphi(n)=n\times\prod_{i=1}^k1-\frac{1}{p_i}\)

    证毕


  • \(\varphi*1=id\)

    证明:

    \(f(n)=\sum_{d|n}\varphi(d)\)

    \(\because (n,m)=1\)

    \(f(n)\times f(m)=\sum_{i|n}\varphi(i)\times\sum_{j|m}\varphi(j)\)

    \(\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\sum_{i|n}\sum_{j|m}\varphi(i)\times \varphi(j)\)

    \(\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\sum_{ij|nm}\varphi(ij)\)

    \(\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =f(n\times m)\)

    \(\therefore f(n)\)为积性函数。

    \(f(p^c)=\sum_{d|p^c}\varphi(d)=\varphi(1)+\varphi(p)+\varphi(p^2)+...+\varphi(p^{c-1})=p^c\)

    \(n=\prod_{i=1}^{k}p_i^{c_i}\)

    \(\therefore f(n)=\prod_{i=1}^kp_i^{c_i}=n\)

    \(f=\varphi*1=id\)


\(\varphi\)函数的求法

既然我们之前已经得出了\(\varphi\)的通项公式,那么现在就来想一想\(\varphi\)应该怎么来求吧。

听说这家伙又叫欧拉函数,那——,当然是用线性筛来求啦。

我们可以在用线筛求出质数的同时,把\(\varphi\)也给更新了。

代码:

void sieve(){
	varphi[1]=1;
	for(int i=2;i<=n;i++){
		if (!vis[i]) p[++p[0]]=i,varphi[i]=i-1;
		for (int j=1;j<=p[0]&&i*p[j]<=n;j++){
			vis[i*p[j]]=1;
			if (i%p[j]==0){
				varphi[i*p[j]]=varphi[i]*p[j];
				break;
			}
			varphi[i*p[j]]=varphi[i]*(p[j]-1);
		}
	}
}

\(\mu\)函数的定义

\(n=\prod_{i=1}^{k}p_i^{c_i}\)

\(\mu(n)=\left\{\begin{array}{rcl}1&n=1\\(-1)^k&\forall c_i,c_i\le1\\0&\exists c_i>1\end{array}\right.\)

\(\mu\)函数的一些性质

  • \(\mu\)有积性

    证明:

    \(\mu(a)=0\)\(\mu(b)=0\),则\(\mu(a\times b)=\mu(a)\times\mu(b)\)

    \(\because (a,b)=1 \therefore a\)的质因数,与\(b\)的质因数互不相同。

    \(\therefore \mu(a\times b)=\mu(a)\times\mu(b),(a,b)=1\)

    证毕


  • \(\mu*1=\epsilon\)

    证明:

    原命题可转化为:\(\sum_{d|n}\mu(d)=[d=1]\)

    \(n\)\(k\)个质因数。

    \(\mu*1=\sum_{d|n}\mu(d)=\sum_{i=0}^k(-1)^i\times C_k^i\)

    展开\(\sum\),得到:

    \(u*1=C_k^0-C_k^1+C_k^2-...(+/-)C_m^m=(1-1)^m\),中间用了二项式定理。

    \(\therefore \mu*1=\epsilon\)

    证毕


  • \(id*\mu=\varphi\)

    证明:

    两边同时卷上\(1\)

    \(\ \ \ \ \ \ id*\mu=\varphi\)

    \(id*\mu*1=\varphi*1\)

    \(\ \ \ \ \ \ \ \mu*1=\epsilon\)

    证毕


  • \(\frac{\varphi(n)}{n}=\sum_{d|n}\frac{\mu(d)}{d}\)

    证明:

    我们从\(\varphi*1=id\) 开始推导。

    \(\ \ \ \ \ \ \varphi*1=id\)

    \(\varphi*\mu*1=id*\mu\)

    \(\ \ \ \ \ \ \ \varphi*\epsilon=id*\mu\)

    \(\ \ \ \ \ \ \ \ \ \ \ \ \ \varphi=id*\mu\)

    展开后得到:

    \(\varphi(n)=\sum_{d|n}\mu(d)*\frac{n}{d}\)

    \(\ \ \frac{\varphi(n)}{n}=\sum_{d|n}\frac{\mu(d)}{d}\)

    证毕


莫比乌斯反演

\(g(n)=\sum_{d|n}f(d)\)\(f(n)=\sum_{d|n}\mu(d)\times g(\frac{n}{d})\)

证明:

\(f(n)=\sum_{d|n}\mu(d)\times g(\frac{n}{d})\)

\(\ \ \ \ \ \ \ \ \ =\sum_{d|n}\mu(d)\sum_{i|\frac{n}{d}}f(i)\)

\(\ \ \ \ \ \ \ \ \ =\sum_{i|n}f(i)\sum_{d|\frac{n}{i}}\mu(d)\)

\(\ \ \ \ \ \ \ \ \ =\sum_{i|n}f(i)\times (\mu*1)_{[\frac{d}{i}]}\)

\(\ \ \ \ \ \ \ \ \ =\sum_{i|n}f(i)\times\epsilon(\frac{n}{i})\)

\(\ \ \ \ \ \ \ \ \ =f(n)\)

证毕

其实还有别的形式:

\(g(n)=∑_{n|d}f(n)\)\(f(n)=∑_{n|d}μ(d)g(\frac{d}{n})\)

证明类似,还请读者自行推导。

posted @ 2019-05-28 19:32  WR_Eternity  阅读(713)  评论(0编辑  收藏  举报