首页 > 其他分享 >莫比乌斯反演学习笔记(内涵反演详细推导和证明!)

莫比乌斯反演学习笔记(内涵反演详细推导和证明!)

时间:2023-05-10 16:23:06浏览次数:50  
标签:frac 函数 推导 sum mu 反演 莫比

莫比乌斯反演

前言

记得上次学这个东西已经是一年前了,题到没有做过几道……

一些有趣的东西

莫比乌斯这个人还是很nb的,相信大家都听说过莫比乌斯带,就是他发现的,跟所有数学大佬一样的,他还喜欢天文学和物理

废话不扯多了

前置知识

整除分块

一个在数论计算中异常常见的东西,一般和反演一起出现不是因为反演常见它就常见吗,一般可以在如下形式的式子中使用:

\[\sum_{i=1}^n\lfloor \frac{n}{i}\rfloor \]

这里直接说\(O(\sqrt{n})\)的做法,也就是整除分块,具体做法如下:

  1. 由一些神奇的规律可以发现,大多数\(\lfloor \frac{n}{i}\rfloor\)的值是一样的,且呈块状分布
  2. 可以发现对于每一个对于每一个值相同的块,最后一个数都是\(n/(n/i)\)
  3. 直接乱搞
for(int i=1,k=0;i<=n;i=k+1){
		k=n/(n/i);
		ans+=(k-i+1)*(n/i); 
}

由于主角不是这货,所以证明什么的就不需要啦,有兴趣可以自己打打表看看,或者上网查查证明

正文

莫比乌斯函数

定义

其定义如下:

\[\mu(x)=\left\{\begin{aligned} 1 & &n==1 \\ (-1)^r && n=p_1p_2……p^r,其中p_i为不同质数\\ 0 && others \end{aligned} \right. \]

计算

对于算法竞赛来说,我们有两个方法来算莫比乌斯函数:

方法1:

根据定义直接算

时间复杂度:\(O(\sqrt{(n)})\)

看着很搞笑高效是吧,这东西一次只能算一个数……

方法二:

计算欧拉筛的时候算

void get_mu(int n){
    mu[1]=1;//定义n=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];
        }
    }
 }

接下来给出莫比乌斯函数的一堆定理和部分证明:

定理

1.莫比乌斯函数\(\mu(n)\)是积性函数

2.莫比乌斯函数的和函数在整数\(n\)处的值\(F(n)=\sum_{d|n}\mu(d)\),满足如下

\[\sum_{d|n}\mu(d)=\left\{\begin{aligned} 1 & &n==1 \\ 0 && n>1\\ \end{aligned} \right. \]

证明

对于定理1:这个我想大家自己脑补,因为我觉得显然,但是要写很多东西……,或者可以查一下积性函数,这个东西怎么出名,绝对有人写证明

抱歉!!!

对于定理2:这个还是有一点说头的

先考虑\(n=1\)的情况,\(F(1)=\sum_{d|1}\mu(d)=\mu(1)=1\)

对于\(n>1\),因为上一个定理,\(\mu\)是一个积性函数,那么它的和函数必定是一个积性函数,我们现在假设\(p\)为质数,\(k\)为正整数,那么可以得到如下等式

\[\begin{aligned} F(p^k)&=\sum_{d|p^k}\mu(d)=\mu(1)+\mu(p)+\mu(p^2)+...+\mu(p^k)\\ &=1+(-1)+0+...+0=0 \end{aligned} \]

当一个正整数\(n=p^{a_1}_1p^{a_2}_2...p^{a_k}_k\)时,其和函数\(F(n)=F(p_1^{a_1})F(p_2^{a_2})F(p_3^{a_3})...F(p_k^{a_k})=0\)

证毕

莫比乌斯反演

设\(f\)为算术函数,\(f\)的和函数\(F\)的值为\(F(n)=\sum_{d|n}f(d)\),其值由\(f\)的值决定。也就是说\(F\)的形式由\(f\),决定,即\(f\)可以视作自变量,\(F\)可以视作因变量

那我们思考,能不能让\(f\)作为因变量呢,简单来说就是用\(F\)表示出\(f\),由此引出莫比乌斯反演

依旧设\(f\)为算术函数,\(F\)为其和函数\(F(n)=\sum_{d|n}f(d)\),我们按照定义式展开\(F(n),n=1,2,…,8\)

\[\begin{align} F(1)&=f(1)\\ F(2)&=f(1)+f(2)\\ F(3)&=f(1)+f(3)\\ F(4)&=f(1)+f(2)+f(4)\\ F(5)&=f(1)+f(5)\\ F(6)&=f(1)+f(2)+f(3)+f(6)\\ F(7)&=f(1)+f(7)\\ F(8)&=f(1)+f(2)+f(4)+f(8)\\ \end{align} \]

从这上面的方程可以算出\(f(n),n=1,2……8\)的值

\[\begin{align} f(1)&=F(1)\\ f(2)&=F(2)-F(1)\\ f(3)&=F(3)-F(1)\\ f(4)&=F(4)-F(1)\\ f(5)&=F(5)-F(1)\\ f(6)&=F(6)-F(3)-F(2)+F(1)\\ f(7)&=F(7)-F(1)\\ f(8)&=F(8)-F(4)\\ \end{align} \]

那么我们可以注意到\(f(n)\)等于\(\pm F(n/d)\),其中\(d|n\),那么我们可以得到一个等式

\[f(n)=\sum_{d|n}\mu(d)F(n/d) \]

这个就是网上常见的莫比乌斯反演啦

我们先来证明一下证明一下这个东西:

先从公式的右边的和式开始,通过\(f\)的和函数的定义,将\(F(n/d)\)用表达式\(\sum_{e|\frac{n}{d}}f(e)\)表示

\[\begin{aligned} \sum_{d|n}\mu(d)F(n/d)&=\sum_{d|n}(\mu(d)\sum_{e|\frac{n}{d}}f(e))\\ &=\sum_{d|n}(\sum_{e|\frac{n}{d}}f(e)\mu(d)) \end{aligned} \]

注意到二元组\((d,e)\),满足\(d|n,e|\frac{n}{d}\).同样的\(e|n,d|\frac{n}{e}\),那么继续变

\[\begin{aligned} \sum_{d|n}(\sum_{e|\frac{n}{d}}f(e)\mu(d))=\sum_{e|n}(\sum_{d|\frac{n}{e}}f(e)\mu(d))=\sum_{e|n}(f(e)\sum_{d|\frac{n}{e}}\mu(d)) \end{aligned} \]

然后我们由上面莫比乌斯函数的定理可以得到\(\sum_{d|\frac{n}{e}}\mu(d)=0\),除非\(\frac{n}{e}=1\),当\(n=e\)时,和等于1,所以有:

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

证毕

定理

设\(f\)是积性函数,和函数\(F(n)=\sum_{d|n}\mu(d)\),如果\(F\)是积性函数的话,\(f\)也是积性函数

证明请读者像上面\(\mu\)是积性函数一样yy一下吧,等一下还要写杜教筛,我要写不动了

用途

杜教筛、容斥、数论推式子

后话

感觉和一年前学的时候完全不一样了,以前只看结论,现在还会研究一下证明,越来越喜欢数论了

以上内容的证明和推导全部基于《初等数论及其应用》作者是Kenneth H.Rosen

感谢亲爱的czc教练提供资料

标签:frac,函数,推导,sum,mu,反演,莫比
From: https://www.cnblogs.com/Zhangrx-/p/17388315.html

相关文章

  • Web框架推导
    Web框架本质web框架本质上可以看成是一个功能强大的socket服务端,用户的浏览器可以看成是拥有可视化界面的socket客户端。两者通过网络请求实现数据交互,学者们也可以从架构层面上先简单的将Web框架看做是对前端、数据库的全方位整合纯手撸web框架前面的课程我们已经学习了网络......
  • 拉格朗日反演公式(lagrange inversion)组合证明
    Thereisasimplecombinatorialproof.Theoriginalformis\[[t^n]w^k=\frac{k}{n}[t^{n-k}]\phi^k\]where\(w=t\phi(w)\)consider\(w\)asegf.ofthewaysofsometrees.\(\phi\)asageneratingruleconcerningdegree.\[n![x^n]\frac{w^k}{k......
  • 最小二乘法求解线性方程组公式推导
    M行N列方程组如下。其中x,y是已知量,k是未知量:$${\left\{\begin{matrix}k_{1}x_{1,1}+k_{2}x_{1,2}+\cdots+k_{N}x_{1,N}=y_{1}\\ k_{1}x_{2,1}+k_{2}x_{2,2}+\cdots+k_{N}x_{2,N}=y_{2}\\ \vdots\\ k_{1}x_{M,1}+k_{2}x_{M,2}+\cdots+k_{N}x_{M,N}=y_{M} \end{matrix......
  • 从奈奎斯特采样定理推导FMCW雷达系统性能参数
    公众号【调皮连续波】2023年度会员内容更新公告(04.07)序号类别内容文件路径1行业报告4D毫米波雷达、激光雷达、自动驾驶等4份根目录\雷达行业报告【正文】编辑|  调皮哥的小助理     审核|调皮哥上文从FMCW毫米波雷达系统的性能参数理解4D成像毫米波雷达的设计思路,谈到......
  • FMCW系统性能参数之测量精度公式推导
    公众号【调皮连续波】2023年度会员内容更新公告(04.08)序号类别内容文件路径1无无无【正文】编辑|  调皮哥的小助理     审核|调皮哥连续多篇文章都在说FMCW雷达系统性能参数这个事儿,如:(1)从奈奎斯特采样定理推导FMCW雷达系统性能参数(2)从FMCW毫米波雷达系统的性能参数理解......
  • python 迭代器和推导式的不同处
    迭代器和推导式都是在Python中用于处理可迭代对象的机制,但它们之间有一些关键区别。返回值类型不同:推导式返回一个新的数据结构(列表、集合、字典等),而迭代器返回一个迭代器对象。推导式生成的是一个新的序列或集合,而迭代器则是逐个生成元素。实现方式不同:推导式是一种高级语......
  • python 推导式
    在Python中,列表推导式、字典推导式和集合推导式都是常见的推导式。它们可以让我们使用一种简洁而强大的语法来快速创建新的序列或映射数据类型。列表推导式列表推导式是最常见的一种推导式,用于通过对一个序列中的每个元素应用一个表达式来快速生成一个新的列表。列表推导式的......
  • 带遗忘因子的递推最小二乘法推导
    摘要:最小二乘法的递推形式、直流信号的遗忘递推形式、遗忘递推最小二乘。递推最小二乘法对多组数据\(\vec{x}_i\)和\(y_i\),满足\[y_i=\vec{x}^\mathrm{T}_i\vec{\theta}\]其中\(\vec{x}_i\)是输入数据向量,\(y_i\)是输出数据标量。写成矩阵形式\[\vec{y}=X\vec{\the......
  • python 列表推导式
    Python列表推导式是一种简洁而强大的语法结构,可以让你更快地创建、转换和过滤Python列表。它在Python中非常常用,并且是Python程序员必须掌握的技能之一。具体而言,列表推导式是使用一行代码创建新列表的方法。这个代码行由三部分组成:表达式、迭代器和可选的过滤器。表达式是一个......
  • Python 推导式
    ##########列表推导式###########30以内可以被3整除的整数multiples=[iforiinrange(30)ifi%3==0]print(multiples)#过滤掉长度小于或等于3的字符串列表,并将剩下的转换成大写字母names=['Bob','Tom','alice','Jerry','Wendy','Smith......