<更新提示>

<第一次更新>


<正文>

简单积性函数

在学习欧拉函数的时候,相信读者对积性函数的概念已经有了一定的了解。接下来,我们将相信介绍几种简单的积性函数,以备\(dirichlet\)卷积的运用。

定义

数论函数:在数论上,对于定义域为正整数,值域为复数的函数,我们称之为数论函数。

积性函数:对于数论函数\(f\),若满足\(gcd(a,b)=1\)时,有\(f(ab)=f(a)f(b)\),则称函数\(f\)为积性函数

简单积性函数

约数个数函数

\[\tau(n)=\sum_{k|n}1
\]

约数和函数

\[\sigma(n)=\sum_{k|n}k
\]

元函数

\[e(n)=\begin{cases}1\ (n=1)\\0\ (n\not =1)\end{cases}
\]

恒等函数

\[I(n)=1
\]

单位函数

\[\epsilon(n)=n
\]

欧拉函数

\[\phi(n)=\sum_{i=1}^n[gcd(n,i)==1]
\]

\(Möbius\)函数

\[n=\prod_{i=1}^kp_i^{a_i},\mu(n)=\begin{cases}1\ (n=1)\\(-1)^k\ (\forall\ c_i=1)\\0\ (\exists\ c_i>1)\end{cases}
\]

简单积性函数的求解

与经典的\(Möbius\)函数和欧拉函数同理,这些积性函数都是可以通过线性筛的过程顺带地求出来的,我们不再详细讨论,具体可以参见\(hezlik\)的博客

dirichlet卷积

定义

\(dirichlet\)卷积是数论函数之间的一种运算,我们设有两个数论函数\(f\)和\(g\),它们的定义域为正整数\([1,n]\),那么它们的\(dirichlet\)卷积可以如下表示:

\[(f \times g)(n)=\sum_{d|n}f(x)g(\frac{n}{d})
\]

我们可以简单地用\(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=f\times g=\sum_{d|n}f(d)g(\frac{n}{d})
\]

对于函数\(h\)则可以得到:

\[h(x)h(y)=(\sum_{d_1|x}f(d_1)g(\frac{x}{d_1}))(\sum_{d_2|y}f(d_2)g(\frac{y}{d_2}))
\\=\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\),则有

\[f\times g=\sum_{d|n}f(n)g(\frac{n}{d})\\=\sum_{d|n}g(n)f(\frac{n}{d})=g\times f
\]

\(3.\) \(dirichlet\)卷积满足结合律。

证明:

设有数论函数\(f\),\(g\)和\(h\),则有

\[(f\times g)\times h=f\times g \times h\\=g\times h \times f=(g\times h)\times f\\=f\times (g\times h)
\]

\(4.\)\(dirichlet\)卷积满足分配律。

证明:

设有数论函数\(f\),\(g\)和\(h\),则有

\[(g+h)\times f=\sum_{d|n}(g(d)+h(d))f(\frac{n}{d})
\\=\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\)

证明:

\[(f\times e)(n)=\sum_{d|n}f(d)e(\frac{n}{d})\\=\sum_{d|n}f(d)[\frac{n}{d}==1]\\=\sum_{d|n}f(d)[n==d]=f(n)
\]

由上,我们证明了\(dirichlet\)卷积这种运算的单位元为原函数\(e\),我们可以进一步地定义出数论函数\(f\)的逆函数\(f^{-1}\),使得\(f\times f^{-1}\)成立,可以用如下方式构造:

\[f^{-1}(n)=\begin{cases}\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \frac{1}{f(1)}\ (n=1)\\-\frac{1}{f(1)}\sum_{d|n\cap d<n}f
(\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}\),则

\[(\mu \times I)(n)=\sum_{d|n}\mu(d)I(\frac{d}{n})=\sum_{d|n}\mu(d)
\]

事实上枚举了\(n\)的每一个约数,并对其的\(\mu\)函数值进行了求和。

设\(P=\{1,p_1,p_2,...,p_{k-1}\}\),由此可得:

\[(\mu \times I)(n)=\sum_{S\subseteq P}\left (\mu(\prod_{p\in S}p) + \mu(p_k\prod_{p\in S}p)\right )
\]

由\(\mu\)函数的性质可知:

\[(\mu \times I)(n)=0\ (n>1)
\]

而\(n=1\)时\((\mu \times I)(1)=1\),所以有\(e=\mu\times I\)。

\(3.\) \(\phi=\mu\timesε\)

证明:

欧拉函数是可以用容斥原理算的,考虑到\(\mu\)函数的定义,发现\(\mu\)可以恰好可以作为欧拉函数的容斥系数,即有:

\[\phi(n)=n+\sum_{x\not =1\cap x|n}\frac{n}{x}\mu(x)\\=\sum_{x|n}\frac{n}{x}\mu(x)=(\mu \times ε)(n)
\]

\(4.\) \(\sigma=I\times \epsilon\)

证明:

利用定义展开,得

\[(I\times \epsilon)(n)=\sum_{d|n}I(\frac{n}{d})\epsilon(d)\\=\sum_{d|n} d=\sigma(n)
\]

\(5.\) \(\tau=I\times I\)

证明:

利用定义展开,得

\[(I\times I)(n)=\sum_{d|n}I(\frac{n}{d})I(d)\\=\sum_{d|n}1=\tau(n)
\]

简单运用

\(1.\) 欧拉函数具有性质:\(n=\sum_{d|n}\phi(\frac{n}{d})\)

证明:

\[n=\epsilon(n)=(\epsilon \times e)(n)=(\epsilon\times \mu \times I)(n)\\=(\phi\times I)(n)=\phi(n)
\]

\(2.\) 两次\(dirichlet\)卷积,可以得到:\(\sigma=\tau \times\phi\)

证明:

\[\sigma(n)=(I\times\epsilon)(n)=(I\times I\times\phi)(n)=(\tau \times \phi)(n)
\]

\(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\)卷积推导:

\[F=I\times f \\\mu\times F=\mu \times I \times f \\\mu \times F=e \times f=f
\]

运用

多数时候,对于约数求和式和一些有关数论函数的运算都可以和\(dirichlet\)卷积搭上关系,相当于可以作为推导式子的一个有用工具,其关键在于熟悉定义及其运算,重要常见的几个卷积需要我们牢记。


<后记>

『简单积性函数和dirichlet卷积』的更多相关文章

  1. 积性函数与Dirichlet卷积

    转载自https://oi-wiki.org/math/mobius/ 积性函数 定义 若 $gcd(x,y)=1$ 且 $f(xy)=f(x)f(y)$,则 $f(n)$ 为积性函数. 性质 若 $ ...

  2. Codeforces E. Bash Plays with Functions(积性函数DP)

    链接 codeforces 题解 结论:\(f_0(n)=2^{n的质因子个数}\)= 根据性质可知\(f_0()\)是一个积性函数 对于\(f_{r+1}()\)化一下式子 对于 \[f_{r+1} ...

  3. 2017 CCPC 杭州 HDU6265B 积性函数

    题目链接 http://acm.hdu.edu.cn/downloads/CCPC2018-Hangzhou-ProblemSet.pdf B题 数论题      h(n)=∑ d|n φ(d) × ...

  4. 积性函数&线性筛&欧拉函数&莫比乌斯函数&因数个数&约数个数和

    只会搬运YL巨巨的博客 积性函数 定义 积性函数:对于任意互质的整数a和b有性质f(ab)=f(a)f(b)的数论函数. 完全积性函数:对于任意整数a和b有性质f(ab)=f(a)f(b)的数论函数 ...

  5. codeforces757E. Bash Plays with Functions(狄利克雷卷积 积性函数)

    http://codeforces.com/contest/757/problem/E 题意 Sol 非常骚的一道题 首先把给的式子化一下,设$u = d$,那么$v = n / d$ $$f_r(n ...

  6. 『Möbius函数与Möbius反演』

    Möbius函数 定义 设正整数\(n\)算数基本定理分解后为\(n=\prod_{i=1}^{k}p_i^{a_i}\),定义函数 \[ \mu(n)= \begin{cases} 0\ \ (\e ...

  7. Master of Phi (欧拉函数 + 积性函数的性质 + 狄利克雷卷积)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6265 题目大意:首先T是测试组数,n代表当前这个数的因子的种类,然后接下来的p和q,代表当前这个数的因 ...

  8. Dirichlet 卷积学习笔记

    Dirichlet 卷积学习笔记 数论函数:数论函数亦称算术函数,一类重要的函数,指定义在正整数集上的实值或复值函数,更一般地,也可把数论函数看做是某一整数集上定义的函数. 然而百科在说什么鬼知道呢, ...

  9. [基本操作] Mobius 反演, Dirichlet 卷积和杜教筛

    Dirichlet 卷积是两个定义域在正整数上的函数的如下运算,符号为 $*$ $(f * g)(n) = \sum_{d|n}f(d)g(\frac{n}{d})$ 如果不强调 $n$ 可简写为 $ ...

随机推荐

  1. 浏览器渲染原理笔记 --《How Browser Work》读后总结

    综述 之前使用ExtJS时遇到一个问题:为什么依次设置多个组件的可见性界面会卡顿?在了解HTML的dom操作相关内容的时候也好奇这个东西到底是怎么回事,然后尤其搞不懂CSS和Html分管样式和网页结构 ...

  2. Flex 将默认日期格式转化成通用格式

    flex 默认日期格式如:Wed Dec 16 00:00:00 GMT+0800 2015 想要得到的通用格式如:2015-12-16 转换方法如下: var sdate:String = &quo ...

  3. 图灵程序设计丛书(SQL必知必会)笔记

    SQL必知必会 第二课:检索数据 1.分页 (1).SQL Server 栗子 : select top 2 columns from tableName (2).Oracle 栗子 :select ...

  4. es6属性基础教学,30分钟包会

    ES6基础智商划重点在实际开发中,ES6已经非常普及了.掌握ES6的知识变成了一种必须.尽管我们在使用时仍然需要经过babel编译.ES6彻底改变了前端的编码风格,可以说对于前端的影响非常巨大.值得高 ...

  5. 数据结构之ConcurrentHashMap

    并发编程实践中,ConcurrentHashMap是一个经常被使用的数据结构,相比于Hashtable以及Collections.synchronizedMap(),ConcurrentHashMap ...

  6. sql语句的一些案列!

    http://www.cnblogs.com/skynet/archive/2010/07/25/1784892.html

  7. pymongo 学习总结

    1.简介 MongoDB是一种强大.灵活.追求性能.易扩展的数据存储方式.是面向文档的数据库,不是关系型数据库,是NoSQL(not only SQL)的一种.所谓的面向文档,就是将原来关系型数据库中 ...

  8. jQuery的入口函数四种写法

    1.第一种: $(document).ready(function(){ }); 2.第二种(最简洁的写法,推荐): $(function(){ }); 3.第三种: jQuery(document) ...

  9. JDBC连接MySQL数据库基础

    主要内容 MySQL的基本操作和基本SQL语法 使用JDBC进行MySQL数据库的开发 使用DriverManager.Connection.PreparedStatement.ResultSet对数 ...

  10. 开机出现loading Operating System的解决方案

    今天清理机箱之后开机发现电脑屏幕出现以下界面,提示的内容是"正在加载操作系统,磁盘启动失败,请插入系统盘..",出现这种状况的原因有以下几种: 1.主引导的扇区的损坏或者信息的错乱 ...