『简单积性函数和dirichlet卷积』
<更新提示>
<第一次更新>
<正文>
简单积性函数
在学习欧拉函数的时候,相信读者对积性函数的概念已经有了一定的了解。接下来,我们将相信介绍几种简单的积性函数,以备\(dirichlet\)卷积的运用。
定义
数论函数:在数论上,对于定义域为正整数,值域为复数的函数,我们称之为数论函数。
积性函数:对于数论函数\(f\),若满足\(gcd(a,b)=1\)时,有\(f(ab)=f(a)f(b)\),则称函数\(f\)为积性函数
简单积性函数
约数个数函数
\]
约数和函数
\]
元函数
\]
恒等函数
\]
单位函数
\]
欧拉函数
\]
\(Möbius\)函数
\]
简单积性函数的求解
与经典的\(Möbius\)函数和欧拉函数同理,这些积性函数都是可以通过线性筛的过程顺带地求出来的,我们不再详细讨论,具体可以参见\(hezlik\)的博客。
dirichlet卷积
定义
\(dirichlet\)卷积是数论函数之间的一种运算,我们设有两个数论函数\(f\)和\(g\),它们的定义域为正整数\([1,n]\),那么它们的\(dirichlet\)卷积可以如下表示:
\]
我们可以简单地用\(O(nlog_2n)\)的时间求出两个函数的\(dirichlet\)卷积,其时间复杂度可以使用调和级数证明。
\(Code:\)
inline void dirichlet(long long *a,long long *b)
{
long long res[N]={};
for (int i=1;i<=n;i++)
for (int j=1;j*i<=n;j++)
res[i*j] = (res[i*j] + a[i] * b[j] % Mod) % Mod ;
memcpy( a , res , sizeof res );
}
性质
\(1.\) 两个积性函数\(f\)和\(g\)的\(dirichlet\)卷积仍为积性函数。
证明:
设有两个积性函数\(f\)和\(g\),则它们的\(dirichlet\)卷积为:
\]
对于函数\(h\)则可以得到:
\\=\sum_{d_1|x,d_2|y}f(d_1d_2)g(\frac{xy}{d_1d_2})\\=\sum_{d|xy}f(d)g(\frac{xy}{d})=h(xy)\]
故函数\(h\)为积性函数。
\(2.\) \(dirichlet\)卷积满足交换律。
证明:
设有数论函数\(f\)和\(g\),则有
\]
\(3.\) \(dirichlet\)卷积满足结合律。
证明:
设有数论函数\(f\),\(g\)和\(h\),则有
\]
\(4.\)\(dirichlet\)卷积满足分配律。
证明:
设有数论函数\(f\),\(g\)和\(h\),则有
\\=\sum_{d|n}g(d)f(\frac{n}{d})+\sum_{d|n}h(d)f(\frac{n}{d})
\\=g\times f+h\times f\]
简单卷积
\(1.\) \(f\times e=f\)
证明:
\]
由上,我们证明了\(dirichlet\)卷积这种运算的单位元为原函数\(e\),我们可以进一步地定义出数论函数\(f\)的逆函数\(f^{-1}\),使得\(f\times f^{-1}\)成立,可以用如下方式构造:
(\frac{n}{d})f^{-1}(d)\ (n\not=1)\end{cases}\]
\(2.\) \(e=\mu\times I\)
证明:
考虑\(Möbius\)函数的一个性质,对于质数\(p\)和整数\(a\)满足\(p\not|a\),有\(\mu(ap)+\mu(a)=0\),这是可以由\(Möbius\)函数的定义得到的,那么我们设\(n=\prod_{i=1}^kp_i^{a_i}\),则
\]
事实上枚举了\(n\)的每一个约数,并对其的\(\mu\)函数值进行了求和。
设\(P=\{1,p_1,p_2,...,p_{k-1}\}\),由此可得:
\]
由\(\mu\)函数的性质可知:
\]
而\(n=1\)时\((\mu \times I)(1)=1\),所以有\(e=\mu\times I\)。
\(3.\) \(\phi=\mu\timesε\)
证明:
欧拉函数是可以用容斥原理算的,考虑到\(\mu\)函数的定义,发现\(\mu\)可以恰好可以作为欧拉函数的容斥系数,即有:
\]
\(4.\) \(\sigma=I\times \epsilon\)
证明:
利用定义展开,得
\]
\(5.\) \(\tau=I\times I\)
证明:
利用定义展开,得
\]
简单运用
\(1.\) 欧拉函数具有性质:\(n=\sum_{d|n}\phi(\frac{n}{d})\)
证明:
\]
\(2.\) 两次\(dirichlet\)卷积,可以得到:\(\sigma=\tau \times\phi\)
证明:
\]
\(3.\) 可以推得\(Möbius\)定理:\(F(n)=\sum_{d|n}f(d)\Leftrightarrow f(n)=\sum_{d|n}\mu(d)F(\frac{n}{d})\)
证明:
已知\(F=I\times f\),试证明\(f=\mu\times F\),可以利用\(dirichlet\)卷积推导:
\]
运用
多数时候,对于约数求和式和一些有关数论函数的运算都可以和\(dirichlet\)卷积搭上关系,相当于可以作为推导式子的一个有用工具,其关键在于熟悉定义及其运算,重要常见的几个卷积需要我们牢记。
<后记>
『简单积性函数和dirichlet卷积』的更多相关文章
- 积性函数与Dirichlet卷积
转载自https://oi-wiki.org/math/mobius/ 积性函数 定义 若 $gcd(x,y)=1$ 且 $f(xy)=f(x)f(y)$,则 $f(n)$ 为积性函数. 性质 若 $ ...
- Codeforces E. Bash Plays with Functions(积性函数DP)
链接 codeforces 题解 结论:\(f_0(n)=2^{n的质因子个数}\)= 根据性质可知\(f_0()\)是一个积性函数 对于\(f_{r+1}()\)化一下式子 对于 \[f_{r+1} ...
- 2017 CCPC 杭州 HDU6265B 积性函数
题目链接 http://acm.hdu.edu.cn/downloads/CCPC2018-Hangzhou-ProblemSet.pdf B题 数论题 h(n)=∑ d|n φ(d) × ...
- 积性函数&线性筛&欧拉函数&莫比乌斯函数&因数个数&约数个数和
只会搬运YL巨巨的博客 积性函数 定义 积性函数:对于任意互质的整数a和b有性质f(ab)=f(a)f(b)的数论函数. 完全积性函数:对于任意整数a和b有性质f(ab)=f(a)f(b)的数论函数 ...
- codeforces757E. Bash Plays with Functions(狄利克雷卷积 积性函数)
http://codeforces.com/contest/757/problem/E 题意 Sol 非常骚的一道题 首先把给的式子化一下,设$u = d$,那么$v = n / d$ $$f_r(n ...
- 『Möbius函数与Möbius反演』
Möbius函数 定义 设正整数\(n\)算数基本定理分解后为\(n=\prod_{i=1}^{k}p_i^{a_i}\),定义函数 \[ \mu(n)= \begin{cases} 0\ \ (\e ...
- Master of Phi (欧拉函数 + 积性函数的性质 + 狄利克雷卷积)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6265 题目大意:首先T是测试组数,n代表当前这个数的因子的种类,然后接下来的p和q,代表当前这个数的因 ...
- Dirichlet 卷积学习笔记
Dirichlet 卷积学习笔记 数论函数:数论函数亦称算术函数,一类重要的函数,指定义在正整数集上的实值或复值函数,更一般地,也可把数论函数看做是某一整数集上定义的函数. 然而百科在说什么鬼知道呢, ...
- [基本操作] Mobius 反演, Dirichlet 卷积和杜教筛
Dirichlet 卷积是两个定义域在正整数上的函数的如下运算,符号为 $*$ $(f * g)(n) = \sum_{d|n}f(d)g(\frac{n}{d})$ 如果不强调 $n$ 可简写为 $ ...
随机推荐
- 微信公众号网页授权登录--JAVA
网上搜资料时,网友都说官方文档太垃圾了不易看懂,如何如何的.现在个人整理了一个通俗易懂易上手的,希望可以帮助到刚接触微信接口的你. 请看流程图!看懂图,就懂了一半了: 其实整体流程大体只需三步:用户点 ...
- Java 包装类笔记
@(JDK)[包装类] Java 包装类笔记 当需要使用到集合的时候,如果是基础数据类型,需要转换为包装类,再使用,在JDK1.5之前,每次使用的时候,都需要手动转换为包装类(称为装箱),然后在使用的 ...
- Linux 安装 MongoDB
一.下载 Linux:CentOS 7.3 64位 MongoDB:3.6.4 安装目录:/usr/local cd /usr/local wget https://fastdl.mongodb.or ...
- 微信小程序入门一
基本的准备工作 -知识储备 --基础:HTML+JS+CSS --进阶:React.Vue -工具安装 --工具由微信官方提供 ---下载地址:https://github.com/zce/weapp ...
- ABP+AdminLTE+Bootstrap Table aspnetboilerplate 学习
http://www.cnblogs.com/anyushengcms/p/7325126.html https://github.com/aspnetboilerplate/aspnetboiler ...
- js基础进阶--关于Array.prototype.slice.call(arguments) 的思考
欢迎访问我的个人博客:http://www.xiaolongwu.cn Array.prototype.slice.call(arguments)的作用为:强制转化arguments为数组格式,一般出 ...
- python 关于操作文件的相关模块(os,sys,shutil,subprocess,configparser)
一:os模块 os模块提供了许多允许你程序与操作系统直接交互的功能 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname&quo ...
- PAT1002:A+B for Polynomials
1002. A+B for Polynomials (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue T ...
- 由于github仓库中提前建立readme文件,导致git push报错error: failed to push some refs to 'git@github.com:
$ git push -u origin master To git@github.com:xxx/xxx.git ! [rejected] master -> master (fetch fi ...
- SSM-SpringMVC-05:SpringMVC视图解析器InternalResourceViewResolver配置
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 视图解析器------默认就有配置,但是默认的在实际使用过程中有很多不方便的地方,所以我们配置一道视图解析器 ...