Mobius Inversion

狄利克雷卷积

定义

若t=f∗g,则t(n)=∑i∣nf(i)g(i)若 \ \mathbf t=\mathbf f\ast\mathbf g,则\\ \mathbf t(n) = \sum_{i | n} \mathbf f(i)\ \mathbf g(i) 若 t=f∗g,则t(n)=i∣n∑​f(i) g(i)

一些性质
  • 交换律:$ \mathbf f\ast\mathbf g=\mathbf g\ast\mathbf f $

  • 结合律:(f∗g)∗h=f∗(g∗h)(\mathbf f \ast \mathbf g) \ast \mathbf h= \mathbf f \ast (\mathbf g \ast \mathbf h)(f∗g)∗h=f∗(g∗h)

  • 分配律:(f+g)∗h=f∗h+g∗h(\mathbf f+\mathbf g)\ast \mathbf h=\mathbf f\ast\mathbf h+\mathbf g\ast\mathbf h(f+g)∗h=f∗h+g∗h

  • $ (x \ \mathbf f)\ast\mathbf g=x \ (\mathbf f\ast\mathbf g)$

  • ϵ ∗f=f\epsilon \, \ast \mathbf f = \mathbf fϵ∗f=f

  • 逆元:∀f,andf(1)≠0,∃g,sothatf∗g=ϵ\forall \ \mathbf f, and \ \mathbf f(1) \neq 0, \exist \ \mathbf g, \ so \ that\ \mathbf f \ast \mathbf g = \epsilon∀ f,and f(1)̸​=0,∃ g, so that f∗g=ϵ

    其中构造逆元的方法:令
    g(n)=1f(1)([n=1]−∑i∣n,i≠1f(i)g(ni))\mathbf g(n) = \frac{1}{\mathbf f(1)} ([n = 1]- \sum_{i|n, \ i \neq 1} \mathbf f(i) \ \mathbf g(\frac{n}{i})) g(n)=f(1)1​([n=1]−i∣n, i̸​=1∑​f(i) g(in​))
    这样:
    ∑i∣nf(i)g(ni)=f(1)g(n)+∑i∣n,i≠1f(i)g(ni)=[n=1]\sum_{i | n} \mathbf f(i) \ \mathbf g(\frac{n}{i}) \\ = \mathbf f(1) \ \mathbf g(n) + \sum_{i|n, \ i \neq 1} \mathbf f(i) \ \mathbf g(\frac{n}{i}) \\ = [n = 1] i∣n∑​f(i) g(in​)=f(1) g(n)+i∣n, i̸​=1∑​f(i) g(in​)=[n=1]

例题
  1. 已知 f(1)…f(n)\mathbf f(1) \dots \mathbf f(n)f(1)…f(n),定义
    fk(n)=∑d1d2…dk=nf(d1)f(d2)…f(dn)\mathbf f_k(n) = \sum \limits _{d_1d_2\dots d_k = n} \mathbf f(d_1) \ \mathbf f(d_2)\dots \mathbf f(d_n) fk​(n)=d1​d2​…dk​=n∑​f(d1​) f(d2​)…f(dn​)
    求 f(1)…f(n),n,k≤105\mathbf f(1) \dots \mathbf f(n), \ n, k \le 10^5f(1)…f(n), n,k≤105

​ SolSolSol: 发现 fk=f∗f⋯∗f⎵k\mathbf f_k = \begin{matrix}\underbrace{f \ast f \cdots \ast f}\\k\end{matrix}fk​=f∗f⋯∗f​k​

​ 又由于狄利克雷卷积的结合律,快速幂即可。复杂度为 Θ(nlog⁡nlog⁡k)\Theta(n \ \log n \ \log k)Θ(n logn logk)。

积性函数

定义
  • 积性函数:∀gcd⁡(a,b)=1,f(a×b)=f(a)×f(b)\forall \gcd(a, b) = 1, \ \mathbf f(a \times b) = \mathbf f(a) \times \mathbf f(b)∀gcd(a,b)=1, f(a×b)=f(a)×f(b)
  • 完全积性函数:∀a,b,f(a×b)=f(a)×f(b)\forall a, b, \ \mathbf f(a\times b) = \mathbf f(a) \times \mathbf f(b)∀a,b, f(a×b)=f(a)×f(b)
常见积性函数
  • φ(n)=n∏p∣n(1−1p)\varphi (n) = n \prod \limits_{p | n} (1 - \frac{1}{p})φ(n)=np∣n∏​(1−p1​)
  • μ(n)\mu (n)μ(n)
  • KaTeX parse error: Expected group after '_' at position 20: …ma _k(n) = \sum_̲\limits{d|n} d …
    • σ0(x)\sigma _0(x)σ0​(x) 约数个数

      • σ0(ij)=∑x∣i∑y∣j[gcd⁡(x,y)=1]\sigma_0(ij) = \sum \limits_{x \mid i} \sum \limits_{y \mid j} [\gcd(x, y) = 1]σ0​(ij)=x∣i∑​y∣j∑​[gcd(x,y)=1]
    • σ1(x)\sigma_1 (x)σ1​(x) 约数和
  • ϵ(n)=[n=1]\epsilon(n) = [n = 1]ϵ(n)=[n=1]
  • idk(x)=nk\mathbf {id} _k(x) = n^kidk​(x)=nk
    • 1(x)=1\mathbf 1(x) = 11(x)=1
    • id(x)=n\mathbf {id} (x) = nid(x)=n
一些性质
  • 两个积性函数的狄利克雷卷积是积性函数

    ​ 推导:
    t(nm)=∑d∣nmf(d)g(nmd)=∑a∣n,b∣mf(ab)g(nmab)=∑a∣n,b∣mf(a)f(b)g(na)g(mb)=(∑a∣nf(a)g(na))(∑b∣mf(b)g(mb))=t(n)t(m)\begin{aligned}\mathbf t(nm)&=\sum_{d\mid nm}\mathbf f(d)\ \mathbf g\left(\frac{nm}d\right)\\&=\sum_{a\mid n,b\mid m}\mathbf f(ab)\ \mathbf g\left(\frac{nm}{ab}\right)\\&=\sum_{a\mid n,b\mid m}\mathbf f(a) \ \mathbf f(b) \ \mathbf g\left(\frac na\right)\mathbf g\left(\frac mb\right)\\&=\left(\sum_{a\mid n}\mathbf f(a) \ \mathbf g\left(\frac na\right)\right)\left(\sum_{b\mid m}\mathbf f(b)\ \mathbf g\left(\frac mb\right)\right)\\&=\mathbf t(n)\ \mathbf t(m)\end{aligned} t(nm)​=d∣nm∑​f(d) g(dnm​)=a∣n,b∣m∑​f(ab) g(abnm​)=a∣n,b∣m∑​f(a) f(b) g(an​)g(bm​)=⎝⎛​a∣n∑​f(a) g(an​)⎠⎞​⎝⎛​b∣m∑​f(b) g(bm​)⎠⎞​=t(n) t(m)​

莫比乌斯函数

μ(d)\mu(d)μ(d) 的定义

μ(d)={1d=1(−1)kd=∏i=1kpi,pi为互异素数0d有平方因子\mu (d) = \begin {cases} 1&d = 1 \\ (-1) ^ k & d = \prod \limits_{i = 1} ^ kp_i, \ p_i 为互异素数 \\ 0 & d \ 有平方因子 \end{cases} μ(d)=⎩⎪⎪⎪⎨⎪⎪⎪⎧​1(−1)k0​d=1d=i=1∏k​pi​, pi​为互异素数d 有平方因子​

一些性质
  • ∀n,∑d∣nμ(d)=[n=1]\forall n, \ \sum_{d | n} \mu(d) = [n = 1]∀n, ∑d∣n​μ(d)=[n=1]
  • ∀n,∑d∣nμ(d)d=φ(n)n\forall n, \ \sum_{d | n}\frac{\mu(d)}{d} = \frac{\varphi(n)}{n}∀n, ∑d∣n​dμ(d)​=nφ(n)​
  • φ=μ∗id\varphi = \mu \ast \mathbf{id}φ=μ∗id
  • ϵ=μ∗1\epsilon = \mu \ast \mathbf 1ϵ=μ∗1
  • σ0(x)=1∗1\sigma _0 (x) = \mathbf 1 \ast \mathbf 1σ0​(x)=1∗1
  • σ1(x)=id∗1\sigma _1(x) = \mathbf{id} \ast \mathbf 1σ1​(x)=id∗1
  • id=φ∗1\mathbf {id} = \varphi \ast \mathbf 1id=φ∗1
线性筛 μ\muμ
inline void get_mu()
{mu[1] = 1;memset(is_prime, true, sizeof(is_prime));for(ri i = 2; i <= MAXN - 5; i++){if(is_prime[i]){mu[i] = -1;prime[++cnt] = i;}for(ri j = 1; j <= cnt && prime[j] * i <= MAXN - 5; j++){is_prime[i * prime[j]] = false;if(i % prime[j] == 0)break;elsemu[prime[j] * i] = -mu[i];}}
}

莫比乌斯反演

由性质 ϵ=μ∗1\epsilon = \mu \ast \mathbf 1ϵ=μ∗1 可进行如下推导:
如果存在F=f∗1就有f=f∗1∗μ=F∗μ如果存在 \ \mathbf F = \mathbf f \ast \mathbf 1 \\ 就有 \ \mathbf f = \mathbf f \ast \mathbf 1 \ast \mu = \mathbf F \ast \mu 如果存在 F=f∗1就有 f=f∗1∗μ=F∗μ
整理一下可以得到:

如果存在数论函数 f\mathbf ff,$\mathbf F $,满足:
F(n)=∑d∣nf(d)\mathbf F(n) = \sum \limits_{d\mid n} \mathbf f(d) F(n)=d∣n∑​f(d)
就有:
f(n)=∑d∣nμ(d)F(nd)\mathbf f(n) = \sum \limits_{d\mid n} \mu(d) \ \mathbf F(\frac{n}{d}) f(n)=d∣n∑​μ(d) F(dn​)
或者:
f(n)=∑n∣dμ(dn)F(d)\mathbf f(n) = \sum \limits_{n \mid d} \mu(\frac{d}{n}) \ \mathbf F(d) f(n)=n∣d∑​μ(nd​) F(d)

Mobius Inversion相关推荐

  1. 关于广义莫比乌斯反演的思考

    本文总结关于广义莫比乌斯反演的一些思想. 1. 广义莫比乌斯反演 为区别平时所说的整数上定义整除关系后,在dirichlet卷积下的莫比乌斯反演,这里更关心其一般化,所以称之为广义莫比乌斯反演. 在R ...

  2. 莫比乌斯(Mobius)反演知识整合

    前言 虽然我去年就已经学过这东西了,但是一直没有整理.归纳.而且我发现我对它的套路不够熟悉.对它的理解不够透彻,卒致GDOIDay2T1没切(详细事故记录戳这里).所以,在此做一个知识整合. 引子 先 ...

  3. UVA 11990 ``Dynamic'' Inversion 动态逆序对

    ``Dynamic'' Inversion Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 https://uva.onlinejudge.org/index ...

  4. Inversion Sequence(csu 1555)

    Description For sequence i1, i2, i3, - , iN, we set aj to be the number of members in the sequence w ...

  5. [Js-Spring]Spring与IoC(控制反转,Inversion of Control)

    控制反转(Ioc,Inversion of Control),是一个概念,一种思想.指将传统上由程序代码直接操控的对象调用权交给容器,通过容器来实现对象的装配和管理.控制反转就是对对象控制权的转移,从 ...

  6. IoC(Inversion of Control,控制反转)模式

    IoC模式 1.依赖依赖就是有联系,有地方使用到它就是有依赖它,一个系统不可能完全避免依赖.如果你的一个类或者模块在项目中没有用到它,恭喜你,可以从项目中剔除它或者排除它了,因为没有一个地方会依赖它. ...

  7. 【算法与数据结构】一道检测inversion count的初级算法

    (转载请注明出处:http://blog.csdn.net/buptgshengod) 1.题目 这是一道检测inversion count的算法.它将检测输入序列中反序输入的个数,即检测其中有几对A ...

  8. Inversion of Control Containers and the Dependency Injection pattern--Martin Fowler

    原文地址:https://martinfowler.com/articles/injection.html n the Java community there's been a rush of li ...

  9. Bzoj-2820 YY的GCD Mobius反演,分块

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2820 题意:多次询问,求1<=x<=N, 1<=y<=M且gcd( ...

最新文章

  1. mysql 分号 存储过程_MySql 存储过程
  2. 智源研究院发布《2020北京人工智能发展报告》,剖析北京AI发展的17个中国“第一”...
  3. 养成一个新习惯,只需要这个大脑区域兴奋0.5秒
  4. golang copy函数
  5. ajax、offset
  6. python ssh登陆模块_使用python的Paramiko模块登陆SSH
  7. mpvue 小程序 页面跳转获取参数
  8. resultJP在Java中_java result是如何直接变为对象的
  9. .NET(C#):XmlArrayItem特性和XmlElement特性在序列化数组的差别
  10. Emmet的高级功能与使用技巧
  11. EC-JET喷码机报EC2.01偏转板电压故障
  12. 基于javaweb的客户信息管理系统搭建
  13. Android 开发 修改app应用的名字和图标
  14. 【Python】使用Selenium实现淘宝抢单
  15. 电子通讯录(文件保存版)
  16. 无线传感网络——串口通信
  17. 新冠病毒研究进展:维生素D或许能挽救新冠患者
  18. 基于PHP+MySQL实验室预约管理系统的设计与实现
  19. android客户端动态折线图
  20. 不得不说,时刻准备着

热门文章

  1. linux修改tomcat默认的8080端口号
  2. 华农软件工程实验报告_华南农业大学软件工程大一课程表
  3. pytorch开发工具
  4. Linux下如何设置程序的开机自启动功能
  5. html中ch是什么单位,【CSS】ch(单位名称)
  6. toStdString()
  7. PPT中如何制作两圆交叉阴影图
  8. 内网接入外网的几种方式
  9. 【Java 并发编程】我们为什么要学并发编程?
  10. gs地图开发_当红小生东风风神奕炫GS 有颜有型