『简单积性函数和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$ 可简写为 $ ...
随机推荐
- Django模型层之字段查询参数及聚合函数
该系列教程系个人原创,并完整发布在个人官网刘江的博客和教程 所有转载本文者,需在顶部显著位置注明原作者及www.liujiangblog.com官网地址. 字段查询是指如何指定SQL WHERE子句的 ...
- require、缓存
什么是require? -Node使用CommonJS模块规范,内置require函数用于加载模块文件 -require的基本功能是>读入并执行一个javascript文件,然后返回该模块的ex ...
- java数据库基本操作(sqlserver 2000为例)
一.环境搭建 1.下载对应数据库连接驱动包并引入. 2.如果在web中调用必须在tomcat中也放入对应的驱动包. 3.在jre的lib\ext中也加入对应的驱动包. 二.连接数据库 public s ...
- 20岁少年小伙利用Python_SVM预测股票趋势月入十万!
在做数据预处理的时候,超额收益率是股票行业里的一个专有名词,指大于无风险投资的收益率,在我国无风险投资收益率即是银行定期存款. pycharm + anaconda3.6开发,涉及到的第三方库有p ...
- 易用性测试、本地化测试、部署测试、无障碍测试、回归测试、冒烟测试、A/B测试
1.易用性定义: 易用性测试是指测试用户使用软件时是否感觉方便,是否能保证用户使用的测试类型2.本地化测试: ·定义:针对软件的本地化版本实施的针对性测试 ·测试内容: (1)语言,书写习惯 (2)时 ...
- Mysql 查询缓存总结
Mysql 查询缓存总结 MySQL查询缓存解释 缓存完整的SELECT查询结果,也就是查询缓存.保存查询返回的完整结果.当查询命中该缓存,mysql会立刻返回结果,跳过了解析.优化和执行阶段, 查询 ...
- codeforces 983B XOR-pyramid
题意: 定义一个函数f(a): 给出一个数组a,有q个询问,每次询问回答在l到r的区间内,连续子串的f函数的最大值. 思路: 画图,来自codeforces SheepRanger 由此图可知,f(l ...
- Cookie SQL注入
转自http://blog.sina.com.cn/s/blog_6b347b2a0101379o.html cookie注入其原理也和平时的注入一样,只不过说我们是将提交的参数已cookie方式提交 ...
- Vlan ---虚拟局域网
VLAN是一种将局域网(LAN)设备从逻辑上划分(注意,不是从物理上划分)成一个个网段(或者说是更小的局域网LAN),从而实现虚拟工作组(单元)的数据交换技术.VLAN(Virtual Local A ...
- 【手记】ASP.NET提示“未能创建类型”处理
我是在本机启动IIS Express调试一个ashx(一般处理程序)时遇到这个报错,网上的说法普遍有这么几种: 把bbb.ashx中的Class="aaa.bbb" 改为Class ...