[笔记] 数论函数小记-程序员宅基地

1.定义

  • $\epsilon(n)=\begin{cases} 1& n=1 \\ 0& n >1 \end{cases}$
  • $I(n)=1$
  • $id(n)=n$
  • $d(n)$因子个数
  • $\sigma(n)$因数和
  • $\mu (n)$莫比乌斯函数
  • $\varphi (n)$欧拉函数

2.狄利克雷卷积

  • $h(n)=\sum_{d|n}\space f(d)g(\frac{n}{d})$
  • $h=f*g$
  • 性质:

  1. 交换律$(f∗g=g∗f)$;
  2. 结合律$((f∗g)∗h=f∗(g∗h))$;
  3. 分配律$((f+g)∗h=f∗h+g∗h)$;
  • 举个例子,对于交换律,我们看狄利克雷卷积的式子,实质上就是$n$的每一个约数带入$f$中的值,乘上与之对应的约数在gg中的值。
  • 常见的(加深理解):
  • $d=I*I$
  • $\sigma=id*I$
  • $\varphi=\mu*id$

3.莫比乌斯函数:

  (1)$\sum_{d|n}\mu(d)=\begin{cases}1& \text{n=1}\\ 0& \text{n>1} \end{cases}= \epsilon(n)$,即$\mu*I=\epsilon$

  • 对于 $n=1$,等式显然成立。
  • 设 $n> 1$ 并写 $n=p_1^{a_1}…p_k^{a_k}$ ,在 $\sum_{d|n}\mu{(d)}$ 中非零的项仅来自于 $d=1$ 与 $n$ 的约数是不同素数的乘积,即
  • $\sum_{d|n}\mu{(d)} \\ = \mu(1)+\mu(p_1)+…+\mu(p_k)+\mu(p_1p_k)+…+\mu(p_{k-1}p_k)+…+\mu(p_1p_2…p_k) \\ =1+\binom{k}{1}(-1)+\binom{k}{2}(-1)^2+…+\binom{k}{k}(-1)^k \\=0$

  (2)$\sum_{d|n}\frac{\mu(d)}{d}=\frac{\varphi(n)}{n}$

  • 证明:
  • 首先$\sum_{d|n}\varphi(d)=n$
  • 即$\varphi*I=id$
  • 所以$\varphi*I*\mu=id*\mu$
  • 所以$\varphi*\epsilon=id*\mu$
  • 所以$\varphi(n)=\sum_{d|n}\mu(d)*\frac{n}{d}$
  • 再把两边同除以n
  • $\frac{\varphi(n)}{n}=\sum_{d|n}\frac{\mu(d)}{d}$

  (3)莫比乌斯反演

  • 定义:$F(n)$和$f(n)$是定义在非负整数集合上的两个函数,并且满足

$F(n)=\sum_{d|n}f(d)$

  • 那么有

$f(n)=\sum\mu(d) F(\frac{n}{d})$

  • 这个定理称之为莫比乌斯反演
  • 大致证明:
  • $F(n)=\sum_{d|n}f(d)$
  • 即$F=f*I$
  • 然后都卷上$\mu$
  • $F*\mu=f*I*\mu$
  • 因为狄利克雷卷积具有交换律和结合律,又因为$\mu*I=\epsilon$
  • 所以$f*(I*\mu)=f*\epsilon=f$,所以$f=\mu*F$
  • 带回狄利克雷卷积得到原式
  • 对于莫比乌斯反演,还有一种常用的式子:

$F(n)=\sum_{n|d}f(d)$

$f(n)=\sum_{n|d}\mu(\frac{d}{n})F(d)$

  • 大致证明:
  • $\sum_{n|d}\mu(\frac{d}{n})F(d)$
  • $=\sum_{n|d}\mu(\frac{d}{n})\sum_{d|x}f(x)$
  • $=\sum_{n|x}f(x) \sum_{n|d且d|x} \mu(\frac{d}{n})$
  • $=\sum_{n|x}f(x)\sum_{d'|\frac{x}{n}}\mu(d')$
  • $=\sum_{n|x}f(x)\epsilon(\frac{x}{n})$
  • $=f(n)$

线性筛$\mu(n)$

inline void MU(int n) {
    mu[1]=1; for(R i=2;i<=n;++i) {
        if(!vis[i]) pri[++cnt]=i,mu[i]=-1;
        for(R j=1;j<=cnt&&pri[j]*i<=n;++j) {
        
vis[i
*pri[j]]=true; if(i%pri[j]==0) break; mu[i*pri[j]]=-mu[i]; } } }
  1. 形如$\sum_{i=1}^N\sum_{j=1}^M[gcd(i,j)==1]$,直接换成$\sum_{i=1}^N\sum_{j=1}^M\sum_{d|gcd(i,j)}\mu(d)$,然后把$d$提出来,写成$\sum_{i=1}^{\frac{N}{d}}\sum_{j=1}^{\frac{M}{d}}\sum_{d=1}^N\mu(d)$,即$\sum_{d=1}^N\mu(d)\lfloor\frac{N}{d}\rfloor\lfloor\frac{M}{d}\rfloor$
  2. 形如$\sum_{i=1}^N\sum_{j=1}^M[gcd(i,j)==k]$,直接改成$\sum_{i=1}^{\lfloor\frac{N}{k}\rfloor}\sum_{j=1}^{\lfloor\frac{M}{k}\rfloor}[gcd(i,j)==1]$
  3. 形如$\sum_{i=1}^N\sum_{j=1}^Mij[gcd(i,j)==k]$(见大佬博客
  4. 形如$\sum_{i=1}^N\sum_{j=1}^Mlcm(i,j)$(见我的or大佬博客)
  5. 形如$\sum_{i=1}^N\sum_{j=1}^Mgcd(i,j)$,直接用欧拉反演化成$\sum_{i=1}^{N}\sum_{j=1}^M\sum_{d|gcd(i,j)}\varphi(d)$,然后把$d$提出来$\sum_{i=1}^{\lfloor \frac{N}{d}\rfloor}\sum_{j=1}^{\lfloor \frac{M}{d} \rfloor}\sum_{d=1}^N\varphi(d)$,即$\sum_{d=1}^N\varphi(d)\lfloor \frac{N}{d}\rfloor \lfloor \frac{M}{d} \rfloor$
  6. 所以当有一个类似$\sum_{d|gcd(i,j)}$的式子时,大致要把它拆掉,把$i.j$除以$n$,成为$.../n,\sum_{d=1}^{N}$(显然=。=)

4.整除分块

  • 求$\sum_{i=1}^n \lfloor \frac{n}{i} \rfloor$时,
  • 随便$O(n)$求,可是我们要$O(\sqrt{n})$去求;
  • 通过观察,发现$ \lfloor \frac{n}{i} \rfloor $在一定区间内是不变的,并且每个区间的右端点都是$n/ \lfloor n/i \rfloor $,得出这个结论后就可以$O(\sqrt{n})$去求
    for(R l=1,r;l<=n;l=r+1) {
        r=min(n/(n/l),n); 
        ans+=(r-l+1)*(n/l);
    }
  • 有时候,可能推出来的式子不一定就是一个很裸的整除分块,可能会与某些积性函数相乘,如:$\mu,\varphi$...... 这时候,我们就需要对这些函数统计一个前缀和。因为,每当我们使用整除分块跳过一个区间的时候,其所对应的函数值也跳过了一个区间。所以此时,就需要乘上那一个区间的函数值。

 

5.欧拉函数

  • 有一个性质$\sum_{d|n} \varphi(d)=n$
  • 所以造就了欧拉反演(雾)(大佬的详解
  • 求$\sum_{i=1}^N\sum_{j=1}^M\space gcd(i,j)\space(n<m)$
  • 原式
  • $=\sum_{i=1}^N\sum_{j=1}^M\sum_{d|gcd(i,j)}\varphi(d)$
  • 把$d$提出来
  • $=\sum_{i=1}^{\lfloor \frac{N}{d} \rfloor} \sum_{j=1}^{\lfloor \frac{M}{d} \rfloor} \sum_{d=1}^N\varphi(d)$
  • $=\sum_{d=1}^{N}\varphi(d)\lfloor \frac{N}{d} \rfloor\lfloor \frac{M}{d} \rfloor$

 

转载于:https://www.cnblogs.com/Jackpei/p/10989300.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_30292843/article/details/97861034

智能推荐

从零开始搭建Hadoop_创建一个hadoop项目-程序员宅基地

文章浏览阅读331次。第一部分:准备工作1 安装虚拟机2 安装centos73 安装JDK以上三步是准备工作,至此已经完成一台已安装JDK的主机第二部分:准备3台虚拟机以下所有工作最好都在root权限下操作1 克隆上面已经有一台虚拟机了,现在对master进行克隆,克隆出另外2台子机;1.1 进行克隆21.2 下一步1.3 下一步1.4 下一步1.5 根据子机需要,命名和安装路径1.6 ..._创建一个hadoop项目

心脏滴血漏洞HeartBleed CVE-2014-0160深入代码层面的分析_heartbleed代码分析-程序员宅基地

文章浏览阅读1.7k次。心脏滴血漏洞HeartBleed CVE-2014-0160 是由heartbeat功能引入的,本文从深入码层面的分析该漏洞产生的原因_heartbleed代码分析

java读取ofd文档内容_ofd电子文档内容分析工具(分析文档、签章和证书)-程序员宅基地

文章浏览阅读1.4k次。前言ofd是国家文档标准,其对标的文档格式是pdf。ofd文档是容器格式文件,ofd其实就是压缩包。将ofd文件后缀改为.zip,解压后可看到文件包含的内容。ofd文件分析工具下载:点我下载。ofd文件解压后,可以看到如下内容: 对于xml文件,可以用文本工具查看。但是对于印章文件(Seal.esl)、签名文件(SignedValue.dat)就无法查看其内容了。本人开发一款ofd内容查看器,..._signedvalue.dat

基于FPGA的数据采集系统(一)_基于fpga的信息采集-程序员宅基地

文章浏览阅读1.8w次,点赞29次,收藏313次。整体系统设计本设计主要是对ADC和DAC的使用,主要实现功能流程为:首先通过串口向FPGA发送控制信号,控制DAC芯片tlv5618进行DA装换,转换的数据存在ROM中,转换开始时读取ROM中数据进行读取转换。其次用按键控制adc128s052进行模数转换100次,模数转换数据存储到FIFO中,再从FIFO中读取数据通过串口输出显示在pc上。其整体系统框图如下:图1:FPGA数据采集系统框图从图中可以看出,该系统主要包括9个模块:串口接收模块、按键消抖模块、按键控制模块、ROM模块、D.._基于fpga的信息采集

微服务 spring cloud zuul com.netflix.zuul.exception.ZuulException GENERAL-程序员宅基地

文章浏览阅读2.5w次。1.背景错误信息:-- [http-nio-9904-exec-5] o.s.c.n.z.filters.post.SendErrorFilter : Error during filteringcom.netflix.zuul.exception.ZuulException: Forwarding error at org.springframework.cloud..._com.netflix.zuul.exception.zuulexception

邻接矩阵-建立图-程序员宅基地

文章浏览阅读358次。1.介绍图的相关概念  图是由顶点的有穷非空集和一个描述顶点之间关系-边(或者弧)的集合组成。通常,图中的数据元素被称为顶点,顶点间的关系用边表示,图通常用字母G表示,图的顶点通常用字母V表示,所以图可以定义为:  G=(V,E)其中,V(G)是图中顶点的有穷非空集合,E(G)是V(G)中顶点的边的有穷集合1.1 无向图:图中任意两个顶点构成的边是没有方向的1.2 有向图:图中..._给定一个邻接矩阵未必能够造出一个图

随便推点

MDT2012部署系列之11 WDS安装与配置-程序员宅基地

文章浏览阅读321次。(十二)、WDS服务器安装通过前面的测试我们会发现,每次安装的时候需要加域光盘映像,这是一个比较麻烦的事情,试想一个上万个的公司,你天天带着一个光盘与光驱去给别人装系统,这将是一个多么痛苦的事情啊,有什么方法可以解决这个问题了?答案是肯定的,下面我们就来简单说一下。WDS服务器,它是Windows自带的一个免费的基于系统本身角色的一个功能,它主要提供一种简单、安全的通过网络快速、远程将Window..._doc server2012上通过wds+mdt无人值守部署win11系统.doc

python--xlrd/xlwt/xlutils_xlutils模块可以读xlsx吗-程序员宅基地

文章浏览阅读219次。python–xlrd/xlwt/xlutilsxlrd只能读取,不能改,支持 xlsx和xls 格式xlwt只能改,不能读xlwt只能保存为.xls格式xlutils能将xlrd.Book转为xlwt.Workbook,从而得以在现有xls的基础上修改数据,并创建一个新的xls,实现修改xlrd打开文件import xlrdexcel=xlrd.open_workbook('E:/test.xlsx') 返回值为xlrd.book.Book对象,不能修改获取sheett_xlutils模块可以读xlsx吗

关于新版本selenium定位元素报错:‘WebDriver‘ object has no attribute ‘find_element_by_id‘等问题_unresolved attribute reference 'find_element_by_id-程序员宅基地

文章浏览阅读8.2w次,点赞267次,收藏656次。运行Selenium出现'WebDriver' object has no attribute 'find_element_by_id'或AttributeError: 'WebDriver' object has no attribute 'find_element_by_xpath'等定位元素代码错误,是因为selenium更新到了新的版本,以前的一些语法经过改动。..............._unresolved attribute reference 'find_element_by_id' for class 'webdriver

DOM对象转换成jQuery对象转换与子页面获取父页面DOM对象-程序员宅基地

文章浏览阅读198次。一:模态窗口//父页面JSwindow.showModalDialog(ifrmehref, window, 'dialogWidth:550px;dialogHeight:150px;help:no;resizable:no;status:no');//子页面获取父页面DOM对象//window.showModalDialog的DOM对象var v=parentWin..._jquery获取父window下的dom对象

什么是算法?-程序员宅基地

文章浏览阅读1.7w次,点赞15次,收藏129次。算法(algorithm)是解决一系列问题的清晰指令,也就是,能对一定规范的输入,在有限的时间内获得所要求的输出。 简单来说,算法就是解决一个问题的具体方法和步骤。算法是程序的灵 魂。二、算法的特征1.可行性 算法中执行的任何计算步骤都可以分解为基本可执行的操作步,即每个计算步都可以在有限时间里完成(也称之为有效性) 算法的每一步都要有确切的意义,不能有二义性。例如“增加x的值”,并没有说增加多少,计算机就无法执行明确的运算。 _算法

【网络安全】网络安全的标准和规范_网络安全标准规范-程序员宅基地

文章浏览阅读1.5k次,点赞18次,收藏26次。网络安全的标准和规范是网络安全领域的重要组成部分。它们为网络安全提供了技术依据,规定了网络安全的技术要求和操作方式,帮助我们构建安全的网络环境。下面,我们将详细介绍一些主要的网络安全标准和规范,以及它们在实际操作中的应用。_网络安全标准规范