9. 莫比乌斯函数与莫比乌斯反演

9.1 莫比乌斯函数

9.1.1 定义

设 \(\mu\) 为莫比乌斯函数,则有:

\[\mu(x)=\begin{cases}1\qquad (n=1)\\ 0\qquad (∃\ i\ (ki=x,k\in Z\rightarrow \sqrt{i}\in Z))\\ (-1)^{\sum_{i\in prime}[i\mid x]}\end{cases}
\]

直观地说,只要 \(x\) 的某个质因子出现的次数超过一次,则有 \(\mu(x)=0\),否则,\(mu(x)\) 即为 \((-1)^{t}\),其中 \(t\) 为 \(x\) 的质因数总数.

9.1.2 性质

\(No.9121\) \(\forall (i,j)=1\rightarrow\mu(i\times j)=\mu(i)\times \mu(j)\)

\[P.9121
\]

若 \(\mu(A)=1\),则有 \(\mu(A)\times \mu(B)=1\times \mu(B)=\mu(1\times B)\),结果成立

若 \(\mu(A)=0\),则有 \(\mu(A)\times\mu(B)=0\),结果成立

否则设 \(A=\prod_{i\in prime}i,B=\prod_{j\in prime}j\ (\forall i\neq j)\),则有 \(\mu(A)\times\mu(B)=\mu(A\times B)\)

\(No.9122\)

\[\sum_{d\mid n}\mu(d)=\begin{cases}1\qquad (n=1)\\0\qquad(n\neq 1)\end{cases}
\]
\[P.9122
\]

\(n=0\) 时,原式等于 \(0\)

\(n=1\) 时,原式等于 \(\mu(1)=1\)

否则,设 \(n\) 的唯一分解式为 \(n=\prod_{1\le i\le k}p_{i}^{a_{i}}\),由 \(\mu(n)\neq 0\) 知 \(\forall a_{i}=1\)

显然,\(\forall d\mid n\),有 \(i\) 个质因子的数 \(d\) 有 \(C^{i}_{k}\) 种组合情况,每种组合的值为 \((-1)^{i}\),即:

\[\sum_{d\mid n}\mu(d)=\sum_{0\le i\le k}\{C^{i}_{k}\times (-1)^{i}\}
\]

使用二项式定理转化:

\[\sum_{d\mid n}\mu(d)=(1+(-1))^{k}=0^{k}
\]

发现此时在定义域 \((k\neq 0)\) 内恒为 \(0\),易知当 \(n\gt 1\) 时,\(k_{n}\ge 1\),因此 \(\mu(n)=0\),证毕.

9.2 莫比乌斯反演

9.2.1 不完全结论

\[f(a,b,k)=\begin{cases}1\qquad((a,b)=k)\\0\end{cases}
\]

对于

\[g(n,m,k)=\sum^{n}_{i=1}\sum^{m}_{j=1}f(i,j,k)
\]

考虑到

\[g(n,m,k)=\sum^{\lfloor{\frac{n}{k}}\rfloor}_{i=1}\sum^{\lfloor{\frac{m}{k}}\rfloor}_{j-1}f(i,j,1)
\]

根据 \(No.9122\) 得出推导式:

\[\sum_{d\mid (a,b)}\mu(d)=\begin{cases}1\qquad ((a,b)=1)\\0\qquad((a,b)\neq 1)\end{cases}
\]

代入有:

\[f(i,j,1)=\sum_{d\mid (i,j)}\mu(d)
\]

即:

\[g(n,m,k)=\sum^{\lfloor{\frac{n}{k}}\rfloor}_{i=1}\sum^{\lfloor{\frac{m}{k}}\rfloor}_{j-1}=\sum_{d\mid (i,j)}\mu(d)
\]

将原式等价转换,可以得到

\[g(n,m,k)=\sum_{d=1}\mu(d)\sum^{\lfloor{\frac{n}{k}}\rfloor}_{i=1}\sum^{\lfloor{\frac{m}{k}}\rfloor}_{j-1}h(i,j)
\]

其中

\[h(i,j)=\begin{cases}1\qquad(d\mid i,d\mid j)\\0\end{cases}
\]

(可以发现,在这里仅仅是将判断条件与枚举条件互相变换了,而答案是不变的)

在区间 \([1,\lfloor{\frac{n}{k}}\rfloor]\) 中,满足条件 \(d\mid i\) 的 \(i\) 有 \(\lfloor{\frac{n}{kd}}\rfloor\) 个,因此原式可化为

\[g(n,m,k)=\sum_{d=1}\mu(d)\times\lfloor{\frac{n}{kd}}\rfloor\times\lfloor{\frac{m}{kd}}\rfloor
\]

可以证明,当 \(d\gt \min(\lfloor{\frac{n}{k}}\rfloor,\lfloor{\frac{m}{k}}\rfloor)\) 时不存在解.

9.2.2 完全结论

设两个函数 \(f,g\) 满足如下等式:

\[g(n)=\sum_{d\mid n}f(d)
\]

则有:

\[f(n)=\sum_{d\mid n}\mu(d)g(\lfloor{\frac{n}{d}}\rfloor)
\]

特别地:对于莫比乌斯反演还有如下等式:

设两个函数 \(f,g\) 满足如下等式:

\[g(n)=\sum_{n\mid d}f(d)
\]

则有:

\[f(n)=\sum_{n\mid d}\mu(\frac{d}{n})g(d)
\]

[OI] 莫比乌斯函数与莫比乌斯反演的更多相关文章

  1. 莫比乌斯函数筛法 & 莫比乌斯反演

    模板: int p[MAXN],pcnt=0,mu[MAXN]; bool notp[MAXN]; void shai(int n){ mu[1]=1; for(int i=2;i<=n;++i ...

  2. bzoj 2440 完全平方数 【莫比乌斯函数】

    题目 题意:第Ki 个不是完全平方数的正整数倍的数. 对于一个数t,t以内的数里的非完全平方数倍数的个数:num=1的倍数的数量−一个质数平方数(9,25,49...)的倍数的数量+两个质数的积平方数 ...

  3. 51nod 1244 莫比乌斯函数之和 【杜教筛】

    51nod 1244 莫比乌斯函数之和 莫比乌斯函数,由德国数学家和天文学家莫比乌斯提出.梅滕斯(Mertens)首先使用μ(n)(miu(n))作为莫比乌斯函数的记号.具体定义如下: 如果一个数包含 ...

  4. BZOJ 1101 莫比乌斯函数+分块

    思路: 题目中的gcd(x,y)=d (x<=a,y<=b)可以转化成 求:gcd(x,y)=1 (1<=x<=a/d 1<=y<=b/d) 设 G(x,y)表示x ...

  5. 莫比乌斯函数&莫比乌斯反演

    莫比乌斯函数:http://wenku.baidu.com/view/fbec9c63ba1aa8114431d9ac.html Orz  PoPoQQQ

  6. hdu 1965 (莫比乌斯函数 莫比乌斯反演)

    GCD Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

  7. 【bzoj4804】欧拉心算 莫比乌斯反演+莫比乌斯函数性质+线性筛

    Description 给出一个数字N 求\(\sum_{i=1}^{n}\sum_{j=1}^{n}\varphi(gcd(i,j))\) Input 第一行为一个正整数T,表示数据组数. 接下来T ...

  8. 【bzoj3601】一个人的数论 莫比乌斯反演+莫比乌斯函数性质+高斯消元

    Description Sol 这题好难啊QAQ 反正不看题解我对自然数幂求和那里是一点思路都没有qwq 先推出一个可做一点的式子: \(f(n)=\sum_{k=1}^{n}[(n,k)=1]k^d ...

  9. 莫比乌斯函数 && HDU-1695

    莫比乌斯函数定义: $$\mu(d)=\begin{cases}1 &\text{d = 1}\\(-1)^r &\text{$d=p_1p_2...p_r,其中p_i为不同的素数$} ...

  10. BZOJ 2440 莫比乌斯函数+容斥+二分

    2440: [中山市选2011]完全平方数 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 5473  Solved: 2679[Submit][Sta ...

随机推荐

  1. 栈—顺序栈(C实现)

    // Code file created by C Code Develop // 顺序栈 #include "ccd.h" #include "stdio.h" ...

  2. vue中使用xlsx导出excel文件

    俗话说,前人栽树,后人乘凉,感谢强人封装好的xlsx,直接使用就可以了.这是网上找到的,也不知道原作者是不是这位博主,先贴出来吧: https://www.cnblogs.com/boylxx/p/1 ...

  3. python virtualenv虚拟环境配置与使用

    python virtualenv虚拟环境配置与使用 By:赖富玉 QQ:1033553122 概述 python开发过程中,我们可能需要同时开发多款应用,这些应用可能公用同一个版本的Python程序 ...

  4. java面试一日一题:说下mysql中的binlog

    问题:请讲下mysql中的binlog 分析:该问题主要考察对mysql中binlog的理解及使用场景? 回答要点: 主要从以下几点去考虑, 1.什么是binglog? 2.binlog的使用场景是什 ...

  5. spark基础了解—运行层次结构、standalone与onyarn

    spark程序运行层次结构 standalone即主从机制,后续添加了standaloneHA,zk管理master的存活,一旦master挂了会在候选master中诞生新的 HAstandalone ...

  6. 【Windows】使用Dism++打包系统

    目的: 封装自己装好的操作系统,以便后续系统重装提高效率 纯净原生系统需要自己搭建开发环境,许多系统库也没有添加,费劲 网络下的整合包总是参杂些垃圾广告,不如自己封装一个 思路: 利用VMware虚拟 ...

  7. jax框架的官方编译版本 —— 预编译发行版本(release 列表)

    jax框架的Google官方给出的预编译版本,支持CUDA和CUDNN的,带有python版本号,CUDA版本号,CUDNN版本号的: https://storage.googleapis.com/j ...

  8. 元学习:元学习的始祖论文——《On the Optimization of a Synaptic Learning Rule》

    ============================================= 这个论文保持着上世纪人工智能论文的特点,与其说是计算机类论文更不如说是偏生物科学方面的论文,这也可能是因为当 ...

  9. 如何使用Python环境下的2D经典游戏仿真器(openai推出的)retro库运行游戏"刺猬索尼克" (SonicTheHedgehog-Genesis)

    很多资料上都有使用游戏仿真器(openai推出的)retro库运行游戏"刺猬索尼克"  (SonicTheHedgehog-Genesis),但是均没有给出详细的安装该款游戏的步骤 ...

  10. 高阶函数之reduce

    let arrone = [1, 2, 3, 4] let arrtwo = [{ age: 1 }, { age: 2 }, { age: 3 }] let arrthree = [[1, 2, 3 ...