积性函数与Dirichlet卷积
转载自https://oi-wiki.org/math/mobius/
积性函数
定义
若 $gcd(x,y)=1$ 且 $f(xy)=f(x)f(y)$,则 $f(n)$ 为积性函数。
性质
若 $f(x)$ 和 $f(y)$ 均为积性函数,则以下函数为积性函数:
$h(x) = f(x^p)$
$h(x) = f^p(x)$
$h(x) = g(x)f(x)$
$h(x) = \sum_{d|x} f(d)g(\frac{x}{d})$
后面两条性质非常重要,会经常用。它说明了两个积性函数的乘积仍是积性函数、两个积性函数的Dirichlet卷积仍是积性函数。
例如,\begin{aligned}
h(x_1x_2) &= \sum_{d|x_1x_2} f(d)g(\frac{x_1x_2}{d}) \\
&= f(1)g(15) + f(3)g(5) + f(5)g(3) + f(15)g(1) \\
&= [f(1)g(3) + f(3)g(1)]*[f(1)g(5)+f(5)g(1)] \\
&= h(3)h(5)
\end{aligned}
例子
- 单位函数:$\varepsilon(n) = [n=1]$
- 恒等函数:$id_k(n) = n^k$,$id_1(n)$ 通常简记作 $id(n)$
- 常数函数:$1(n)=1$
- 除数函数:$\sigma_k(n) = \sum_{d|n}d^k$,$\sigma_0(n)$ 通常记作 $d(n)$ 或者 $\tau(n)$(表示约数的个数),$\sigma_1(n)$ 通常记作 $\sigma(n)$
- 莫比乌斯函数:$\mu(n)$
Dirichlet卷积
定义
定义两个数论函数 $f,g$的Dirichlet卷积为
$$(f*g)(n) = \sum_{d|n}f(d)g(\frac{n}{d})$$
性质
Dirichlet卷积满足交换律和结合律
其中 $\varepsilon$ 为Dirichlet卷积的单位元(任何函数卷 $\varepsilon$ 都为本身)
例子
$\displaystyle \varepsilon = \mu * 1 \Leftrightarrow \varepsilon (n) = \sum_{d|n}\mu (d)$
$\displaystyle d = 1*1 \Leftrightarrow d(n) = \sum_{d|n}1$
$\displaystyle \sigma = ID*1 \Leftrightarrow \sigma (n) = \sum_{d|n}d$
$\displaystyle ID = \varphi * 1 \Leftrightarrow ID(n) = \sum _{d|n} \varphi (d)$
$\displaystyle \varphi = \mu * ID \Leftrightarrow \varphi (n) = \sum_{d|n}d\cdot \mu(\frac{n}{d})$
还有一个常用来消 $d$ 的,
$n\cdot d = ID*ID \Leftrightarrow n\cdot d(n) = \sum_{d|n}ID(d) \cdot ID(\frac{n}{d})$
证明
1、证 $\displaystyle \varepsilon (n) = \sum_{d|n}\mu(d)$.
解:设 $\displaystyle n = \prod_{i=1}^k{p_i}^{c_i}, \ {n}' = \prod_{i=1}^k p_i$
那么 $\displaystyle \sum_{d|n}\mu (d) = \sum_{d|{n}'} \mu (d) = \sum_{i=0}^k \binom{k}{i}(-1)^i = (1-1)^k$.
当 $k=0$ 即 $n=1$ 时值为1否则为0,这就证明了 $\displaystyle \sum_{d|n}\mu (d) = [n=1]$.
2、证 $n = \sum_{d|n}\varphi (d)$
解:将 $n$ 质因数分解,$\displaystyle n = \prod_{i=1}^k{p_i}^{c_i}$
首先,因为 $\varphi$ 为积性函数,所以 $\varphi * 1$ 也是积性函数,
所以 $(\varphi * 1)(n) = (\varphi * 1)({p_1}^{c_1}) \cdot (\varphi * 1)({p_2}^{c_2})\cdot ... \cdot (\varphi * 1)({p_k}^{c_k})$.
故我们只要证明当 ${n}' = p^c$ 时,$\displaystyle \varphi *1 = \sum_{d|{n}'} \varphi (\frac{{n}'}{d}) =ID$ 成立即可。
因为 $p$ 是质数,于是 $d = p^0, p^1, ..., p^c$.
因此:
$$\begin{aligned}
\varphi *1 &= \sum_{d|n}\varphi (\frac{n}{d}) \\
&= \sum_{i=0}^c \varphi(p^i) \\
&= 1 + p^0\cdot (p-1) + p^1\cdot (p-1) + ... + p^{c-1}(p-1) \\
&= p^c
\end{aligned}$$
该式子两边同时卷积 $\mu$ 可得 $\varphi = ID * \mu$,即 $\varphi (n) = \sum_{d|n}d\cdot \mu (\frac{n}{d})$
积性函数与Dirichlet卷积的更多相关文章
- 『简单积性函数和dirichlet卷积』
简单积性函数 在学习欧拉函数的时候,相信读者对积性函数的概念已经有了一定的了解.接下来,我们将相信介绍几种简单的积性函数,以备\(dirichlet\)卷积的运用. 定义 数论函数:在数论上,对于定义 ...
- 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 ...
- Master of Phi (欧拉函数 + 积性函数的性质 + 狄利克雷卷积)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6265 题目大意:首先T是测试组数,n代表当前这个数的因子的种类,然后接下来的p和q,代表当前这个数的因 ...
- Mobius反演与积性函数前缀和演学习笔记 BZOJ 4176 Lucas的数论 SDOI 2015 约数个数和
下文中所有讨论都在数论函数范围内开展. 数论函数指的是定义域为正整数域, 且值域为复数域的函数. 数论意义下的和式处理技巧 因子 \[ \sum_{d | n} a_d = \sum_{d | n} ...
- [模板] 积性函数 && 线性筛
积性函数 数论函数指的是定义在正整数集上的实或复函数. 积性函数指的是当 \((a,b)=1\) 时, 满足 \(f(a*b)=f(a)*f(b)\) 的数论函数. 完全积性函数指的是在任何情况下, ...
- Codeforces757E.Bash Plays With Functions(积性函数 DP)
题目链接 \(Description\) q次询问,每次给定r,n,求\(F_r(n)\). \[ f_0(n)=\sum_{u\times v=n}[(u,v)=1]\\ f_{r+1}(n)=\s ...
随机推荐
- 热情组——项目冲刺 Day6
项目相关 作业相关 具体描述 班级 班级链接 作业要求 链接地址 团队名称 热情组 作业目标 实现软件制作,以及在福大的传播 Github链接 链接地址 SCRUM部分: 成员昵称 昨日目标 开始时间 ...
- vue 学习注意事项
一:插值方式: 1:数据绑定,最常见的形式就是使用 “Mustache” 语法(双大括号)的文本插值 <span>Message: {{ msg }}</span> 通过使用 ...
- 用欧拉计划学Rust语言(第17~21题)
最近想学习Libra数字货币的MOVE语言,发现它是用Rust编写的,所以先补一下Rust的基础知识.学习了一段时间,发现Rust的学习曲线非常陡峭,不过仍有快速入门的办法. 学习任何一项技能最怕没有 ...
- numpy 数组增加列,增加行的函数:column_stack,row_stack
def fun_ndarray(): a = [[1,2,7], [-6,-2,-3], [-4,-8,-55] ] b = [3,5,6] a = np.array(a) b = np.array( ...
- vertica单节点故障恢复 Startup Failed, ASR Required
测试环境的vertica是单节点的,无法做到故障自动恢复,需要手工处理.案例如下: 发现5433端口连接不上,vertica挂了,手工运行admintools,重新启动vertica,仍然失败,提示: ...
- SQL Server 2014:为什么会提示“用户登录失败”?
SQL Server有两种登录方式,Windows身份验证和sql server身份验证,其对应的数据库连接字符串如下: Windows身份验证 ----- @"Data Source=DE ...
- [数据分析]利用pandasticsearch批量读取ES
1.git地址 https://github.com/onesuper/pandasticsearch 2.建立连接 from pandasticsearch import DataFrame use ...
- Redis学习之Redis服务器数据库实现
本文内容: 1.Redis服务器保存数据库的方法 2.客户端切换数据库的方法 3.数据库保存键值对的方法 4.数据库的添加,删除,查看,更新操作的实现方法 5.服务器保存键的过期时间的方法 6.服务器 ...
- Docker私有云管理平台————Docker Shipyard
一.shipyard中文版安装(CentOS) 注:本文安装操作均在root用户下,安装前需先安装Docker (传送门) 下载所需docker镜像 docker pull rethinkdb doc ...
- Java中List集合去除重复数据的六种方法
1. 循环list中的所有元素然后删除重复 public static List removeDuplicate(List list) { for ( int i = 0 ; i < list. ...