首页 > 其他分享 >欧拉函数及其定理学习笔记

欧拉函数及其定理学习笔记

时间:2023-02-02 21:46:39浏览次数:69  
标签:begin limits 定理 varphi times 笔记 aligned sum 欧拉

——by sunzz3183


欧拉函数

出自:

初步欧拉函数

进阶


定义

\[\varphi (n)=\sum\limits_{i=1}^{n} [\gcd(n,i)=1] \]

筛法

原理

\[\varphi(n)=n\prod_{i=1}^{k}(1-\frac{1}{p_i}) \]

所以:

  1. 当 \(n\) 为质数的时候 \(\varphi (n)=n-1\)
  • 设 \(d=\frac{n}{p}\) 其中 \(p\)为 \(n\) 的最小质因子。
  1. 当 \(p\) 是 \(d\) 的某个质因子时,则 \(\varphi (n)=\varphi (d)\times p\)

  2. 当 \(p\) 与 \(d\) 互质时,\(\varphi (n)=\varphi (d)\times \varphi (p)\)

代码

int cnt,q,prime[M],phi[N],mu[N];
bool is_p[N];
void init(int n){
	phi[1]=mu[1]=1;
	for(int i=2;i<=n;i++){
		if(!is_p[i])prime[++cnt]=i,phi[i]=i-1,mu[i]=-1;
		for(int j=1;j<=cnt&&i*prime[j]<=n;j++){
			is_p[i*prime[j]]=1;
			if(!(i%prime[j])){
				phi[i*prime[j]]=phi[i]*prime[j];
				mu[i*prime[j]]=0;
				break;
			}
			phi[i*prime[j]]=phi[i]*(prime[j]-1);
			mu[i*prime[j]]=-mu[i];
		}
	}
}

重要公式:

\((1)\)

\[\sum\limits_{d|n} \varphi (d)=n \]

证明:

设 \(f(n)=\sum\limits_{d|n} \varphi (d)\)

由筛法的原理1,2可知

\[\varphi (p^k)=\varphi (p)\times p^{k-1}=(p-1)\times p^{k-1}=p^k-p^{k-1} \]

对于

\[\sum\limits_{d|p^k} \varphi (d) \]

显然,\(d=\left \{ p^0,p^1,p^2,...,p^k\right \}\)。那么有

\[\begin{aligned} \\&=\sum\limits_{i=0}^k \varphi (p^i) \\&=(\sum\limits_{i=1}^k p^i-p^{i-1})+1 \\&=p^k-p^{k-1}+p^{k-1}-p^{k-2}+...+p-1+1 \\&=p^k \end{aligned}\]

\(\therefore f(p^k)=p^k\)

\(\because f(ab)=\sum\limits_{d|ab} \varphi (d)=(\sum\limits_{d|a} \varphi (d)) \times (\sum\limits_{d|b} \varphi (d))=f(a)\times f(b)\)

\(\therefore f(n)\)为积性函数。

\[\begin{aligned} \\&\therefore f(n) \\&=f(p_1^{c_1}\times p_2^{c_2}\times p_3^{c_3}\times ...\times p_k^{c_k}) \\&=f(p_1^{c_1})\times f(p_2^{c_2})\times f(p_3^{c_3})\times ...\times f(p_k^{c_k}) \\&= p_1^{c_1}\times p_2^{c_2}\times p_3^{c_3}\times ...\times p_k^{c_k} \\&=n \end{aligned}\]

\((2)\)

\[\begin{aligned} \\&\sum\limits_{i=1}^{n} \sum\limits_{j=1}^{n} [\gcd(i,j)=1] \\&=\sum\limits_{i=1}^{n}(2\sum\limits_{j=1}^{i}[\gcd (i,j)=1])-1 \\&=2 \sum\limits_{i=1}^{n}\varphi (i)-1 \end{aligned}\]

可以使用前缀和,使得 \(O(1)\) 查询。

\((2.5)\)

\[\begin{aligned} \\&\sum\limits_{i=1}^{n} \sum\limits_{j=1}^{n} \gcd(i,j) \\&= \sum\limits_{i=1}^{n} \sum\limits_{j=1}^{n} \sum\limits_{d|gcd(i,j)} \varphi (d) \\&= \sum\limits_{i=1}^{n} \sum\limits_{j=1}^{n} \sum\limits_{d|i,d|j} \varphi (d) \\&= \sum\limits_{i=1}^{n} \sum\limits_{j=1}^{n} \sum\limits_{d=1}^{n} \varphi (d)[d|i][d|j] \\&=\sum\limits_{d=1}^{n} \varphi (d) \sum\limits_{i=1}^{n} \sum\limits_{j=1}^{n} [d|i][d|j] \\&=\sum\limits_{d=1}^{n} \varphi (d) \left \lfloor \frac{n}{d} \right \rfloor ^2 \end{aligned}\]

\((3)\)

莫比乌斯反演(拓展)

\[\begin{aligned} \\&\sum\limits_{i=1}^{n} \sum\limits_{j=1}^{m} \gcd(i,j) \\&= \sum\limits_{i=1}^{n} \sum\limits_{j=1}^{n} \sum\limits_{d|gcd(i,j)} \mu (d) \\&=\sum\limits_{i=1}^{n} \sum\limits_{d=1}^{min(i,m)} \mu (d)\left \lfloor \frac{min(i,m)}{d} \right \rfloor \\&=\sum\limits_{d=1}^{min(n,m)} \mu (d)\left \lfloor \frac{n}{d} \right \rfloor \left \lfloor \frac{m}{d} \right \rfloor \end{aligned}\]

扩展欧拉定理

\[a^b \equiv \begin{cases} a^{b\mod{\varphi(m)}}&a\perp m\\a^b&![a\perp m],b<\varphi (m)\\a^{b\mod{\varphi (m)} +\varphi (m)}&![a\perp m],b\geq\varphi (m)\end{cases}\mod{m} \]

互质可以不要

\[a^b \equiv \begin{cases} a^{b\mod{\varphi(m)}}&b<\varphi (m)\\a^{b\mod{\varphi (m)} +\varphi (m)}&b\geq\varphi (m)\end{cases}\mod{m} \]

标签:begin,limits,定理,varphi,times,笔记,aligned,sum,欧拉
From: https://www.cnblogs.com/sunzz3183/p/17087498.html

相关文章

  • Continual Learning with Lifelong Vision Transformer----阅读笔记
    ContinualLearningwithLifelongVisionTransformer----阅读笔记摘要:在本文中,我们提出了一种新的基于注意力的框架LifelongVisionTransformer(LVT),以实现更好的稳定......
  • c++语言程序设计第一章笔记
    在最开始,老师就向我们介绍了计算机语言的发展历史。也就是先前,在计算机刚开始发展的时候,那时候计算机语言与自然语言之间具有很大的鸿沟(计算机只能读懂二进制的0和1),比机器......
  • 2023.2 做题笔记
    【Baekjoon19394】EulerianOrientation选中边不好做,考虑删除边,一个删除\(x\)条边的图的权值是\((m-x)^2\),令\(k\)个合法图分别删除\(x_1,x_2,...,x_k\),答案就是\(......
  • 通用视觉框架 OpenMMLab第一课笔记
    目录计算机视觉是什么计算机视觉应用传统视觉特征机器学习基础机器学习是什么为什么要让"机器"去"学习"机器学习是什么机器学习的典型范式机器学习的基本流程计算机视觉是......
  • JMeter笔记8 | JMeter关联
    (8|JMeter关联)1测试对象接之前的说明,我们的测试对象为禅道开源版本;按照之前的文章搭建部署好本地禅道,开启服务即可①先到官网下载Windows一键安装包,安装完后启......
  • Redis 学习笔记
    Redis是非关系型的键值对数据库,数据是存储在内存中的,读写速度很快,广泛用于缓存方向,也可用于数据库的持久化。MySQL是关系型的磁盘数据库。访问Redis的速度要更快一点,但受......
  • OpenGL ES 2.0编程指导阅读笔记(六)顶点属性、顶点数组和缓冲对象
    顶点数据,又称顶点属性,给定了每个顶点的数据。这类每个顶点的数据可以每个顶点分别给定,也可以给定一个所有顶点共用的常量。在OpenGLES1.1中,顶点属性名称是预定义的,如po......
  • Python学习笔记--面向对象--进阶
    1.一切皆对象,什么是一切皆对象?python中,创建一个学生类,也就是创建了一个类型叫学生类。classStudent:def__init__(self,x,y,z):self.name=x......
  • JMeter笔记9 | JMeter参数化
    (9|JMeter参数化)1测试对象我们使用禅道的创建用户接口,对创建用户的信息进行参数化;接口详情:2分析从接口看,我们需要参数化的有参数有account和password;其他的......
  • docker笔记
    docker架构图  docker常用命令#查看本地镜像dockerimages#拉取远程镜像到本地dockerpullalpine:3.15#运行镜像#将redis镜像端口6379映射到本机端口6379,后台......