Mobius Inversion
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]
例题
- 已知 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)=d1d2…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⋯∗fk
又由于狄利克雷卷积的结合律,快速幂即可。复杂度为 Θ(nlognlogk)\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) 约数和
- σ0(x)\sigma _0(x)σ0(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)k0d=1d=i=1∏kpi, 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∣ndμ(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. 广义莫比乌斯反演 为区别平时所说的整数上定义整除关系后,在dirichlet卷积下的莫比乌斯反演,这里更关心其一般化,所以称之为广义莫比乌斯反演. 在R ...
- 莫比乌斯(Mobius)反演知识整合
前言 虽然我去年就已经学过这东西了,但是一直没有整理.归纳.而且我发现我对它的套路不够熟悉.对它的理解不够透彻,卒致GDOIDay2T1没切(详细事故记录戳这里).所以,在此做一个知识整合. 引子 先 ...
- UVA 11990 ``Dynamic'' Inversion 动态逆序对
``Dynamic'' Inversion Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 https://uva.onlinejudge.org/index ...
- Inversion Sequence(csu 1555)
Description For sequence i1, i2, i3, - , iN, we set aj to be the number of members in the sequence w ...
- [Js-Spring]Spring与IoC(控制反转,Inversion of Control)
控制反转(Ioc,Inversion of Control),是一个概念,一种思想.指将传统上由程序代码直接操控的对象调用权交给容器,通过容器来实现对象的装配和管理.控制反转就是对对象控制权的转移,从 ...
- IoC(Inversion of Control,控制反转)模式
IoC模式 1.依赖依赖就是有联系,有地方使用到它就是有依赖它,一个系统不可能完全避免依赖.如果你的一个类或者模块在项目中没有用到它,恭喜你,可以从项目中剔除它或者排除它了,因为没有一个地方会依赖它. ...
- 【算法与数据结构】一道检测inversion count的初级算法
(转载请注明出处:http://blog.csdn.net/buptgshengod) 1.题目 这是一道检测inversion count的算法.它将检测输入序列中反序输入的个数,即检测其中有几对A ...
- 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 ...
- Bzoj-2820 YY的GCD Mobius反演,分块
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2820 题意:多次询问,求1<=x<=N, 1<=y<=M且gcd( ...
最新文章
- mysql 分号 存储过程_MySql 存储过程
- 智源研究院发布《2020北京人工智能发展报告》,剖析北京AI发展的17个中国“第一”...
- 养成一个新习惯,只需要这个大脑区域兴奋0.5秒
- golang copy函数
- ajax、offset
- python ssh登陆模块_使用python的Paramiko模块登陆SSH
- mpvue 小程序 页面跳转获取参数
- resultJP在Java中_java result是如何直接变为对象的
- .NET(C#):XmlArrayItem特性和XmlElement特性在序列化数组的差别
- Emmet的高级功能与使用技巧
- EC-JET喷码机报EC2.01偏转板电压故障
- 基于javaweb的客户信息管理系统搭建
- Android 开发 修改app应用的名字和图标
- 【Python】使用Selenium实现淘宝抢单
- 电子通讯录(文件保存版)
- 无线传感网络——串口通信
- 新冠病毒研究进展:维生素D或许能挽救新冠患者
- 基于PHP+MySQL实验室预约管理系统的设计与实现
- android客户端动态折线图
- 不得不说,时刻准备着