『简单积性函数和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$ 可简写为 $ ...
随机推荐
- 拖拽模块move1
刚开的博客,想着写点什么,以前写过拖拽函数,后来又学习了模块化,于是一直想把之前写的拖拽函数封成一个独立的模块,方便以后调用,说干就干,下面码代码... <script> var move ...
- js实用技巧
IIFE(立即调用函数表达式)最广泛的用途是避免污染全局作用域. 已经有很多JavaScript库和JavaScript高手正在使用这种技巧, 尤其是在最流行jQuery插件的开发者中. 你也应该把这 ...
- Python_字符串格式化
#冒泡排序 array = [1,2,3,6,5,4] for i in range(len(array)): for j in range(i): if array[j] > array[j ...
- Myeclipse按包装SVN
最简单步骤:把features和plugins直接放到Myeclipse安装包的dropins中,从新启动eclipse即可 features和plugins下载地址:http://pan.baidu ...
- 关于TCP/IP,必知必会的十个经典问题[转]
关于TCP/IP,必知必会的十个问题 原创 2018-01-25 Ruheng 技术特工队 本文整理了一些TCP/IP协议簇中需要必知必会的十大问题,既是面试高频问题,又是程序员必备基础素养. 一 ...
- 微信小程序开发之formId使用(模板消息)
基于微信小程序的模板消息:基于微信的通知渠道,我们为开发者提供了可以高效触达用户的模板消息能力,以便实现服务的闭环并提供更佳的体验.模板推送位置:服务通知模板下发条件:用户本人在微信体系内与页面有交互 ...
- bootgrid
编写bootgrid前提条件 有关bootgrid的.css和.js库文件 参数:ajax: 必须设置为true post: 传递给Java的参数 url: 与java连接的方法名 ...
- python 基础语法学习
.注释 python单行注释以#开头 如:#!/usr/bin/env python3 #查找运行环境 多行注释有' ' '和" " " .python最具有特色的是使用 ...
- RESTful API 设计
http://www.ruanyifeng.com/blog/2014/05/restful_api.html
- jQuery学习之旅 Item7 区别this和$(this)
刚开始以为this和$(this)就是一模子刻出来.但是我在阅读时,和coding时发现,总不是一回事,这里就谈谈this与$(this)的区别. 1.jQuery中this与$(this)的区别 $ ...