【算法讲4:乘性函数(上)】欧拉函数 | 因子和函数 | 因子个数函数
【算法讲4:乘性函数(上)】
- 续集
- 一些定义 / 定理
- 欧拉 ϕ\phiϕ 函数
- 因子和与因子个数
- 内容出自:《初等数论及其应用》第六版第七章
续集
- 【算法讲5:乘性函数(中)】莫比乌斯函数 | 莫比乌斯反演 | 莫比乌斯反演应用
一些定义 / 定理
- 算数函数:定义在所有正整数上的函数
- 乘性函数(或积性函数):如果算数函数 fff 对任意两个互素的正整数 m、nm、nm、n,均有 f(mn)=f(m)f(n)f(mn)=f(m)f(n)f(mn)=f(m)f(n)
- 完全乘性函数(或完全积性函数):如果算数函数 fff 对任意两个正整数 m、nm、nm、n,均有 f(mn)=f(m)f(n)f(mn)=f(m)f(n)f(mn)=f(m)f(n)
- 如果 fff 是一个乘性函数,对任意正整数有素幂因子分解 n=p1a1p2a2⋯psasn=p_1^{a_1}p_2^{a_2}\cdots p_s^{a_s}n=p1a1p2a2⋯psas
那么 f(n)=f(p1a1)f(p2a2)⋯f(psas)f(n)=f(p_1^{a_1})f(p_2^{a_2})\cdots f(p_s^{a_s})f(n)=f(p1a1)f(p2a2)⋯f(psas) - 和函数:如果 fff 是个算数函数,它的和函数为 FFF ,那么 F(n)=∑d∣nf(d)F(n)=\underset{d|n}{\sum}f(d)F(n)=d∣n∑f(d)
欧拉 ϕ\phiϕ 函数
- 定理1:如果 ppp 是素数,那么 ϕ(p)=p−1\phi(p)=p-1ϕ(p)=p−1。
反之,如果 ppp 是正整数且 ϕ(p)=p−1\phi(p)=p-1ϕ(p)=p−1,那么 ppp 是素数。 - 定理2:设 ppp 是素数, aaa 是一个正整数,那么 ϕ(pa)=pa−pa−1\phi(p^a)=p^a-p^{a-1}ϕ(pa)=pa−pa−1
证明:不超过 pap^apa 且和 pap^apa 不互素的数都可以写成 kpkpkp 的形式,其中 1≤k≤pa−11\le k\le p^{a-1}1≤k≤pa−1,故有 pa−1p^{a-1}pa−1 个这样的数。 - ϕ\phiϕ 是乘性函数,即若 m、nm、nm、n 互素,那么 ϕ(mn)=ϕ(m)ϕ(n)\phi(mn)=\phi(m)\phi(n)ϕ(mn)=ϕ(m)ϕ(n)
证明:用如下方式列出 1∼mn1\sim mn1∼mn 的所有正整数:
1m+12m+1⋯(n−1)m+12m+22m+2⋯(n−1)m+23m+32m+3⋯(n−1)m+3⋮⋮⋮⋮rm+r2m+r⋯(n−1)m+r⋮⋮⋮⋮m2m3m⋯nm\begin{matrix} 1&m+1&2m+1&\cdots&(n-1)m+1\\ 2&m+2&2m+2&\cdots&(n-1)m+2\\ 3&m+3&2m+3&\cdots&(n-1)m+3\\ \vdots&\vdots&\vdots&&\vdots\\ r&m+r&2m+r&\cdots&(n-1)m+r\\ \vdots&\vdots&\vdots&&\vdots\\ m&2m&3m&\cdots&nm\\ \end{matrix} 123⋮r⋮mm+1m+2m+3⋮m+r⋮2m2m+12m+22m+3⋮2m+r⋮3m⋯⋯⋯⋯⋯(n−1)m+1(n−1)m+2(n−1)m+3⋮(n−1)m+r⋮nm
(1)现在假设 rrr 是不超过 mmm 的正整数,且 gcd(m,r)=d>1\gcd(m,r)=d>1gcd(m,r)=d>1,那么第 rrr 行中没有与 mnmnmn 互素的元素。
(2)因此,我们只需要考虑满足 gcd(m,r)=1\gcd(m,r)=1gcd(m,r)=1 的第 rrr 行,该行里有多少个元素和 mnmnmn 互素。首先,这里面每一个元素都和 mmm 互素。
(3)因为每一行 nnn 个整数形成模 nnn 的完全剩余系,故这里面有 ϕ(n)\phi(n)ϕ(n) 个与 nnn 互素的整数。
(4)ϕ(m)\phi(m)ϕ(m) 行,每行 ϕ(n)\phi(n)ϕ(n) 个元素与 mnmnmn 互素,故 ϕ(mn)=ϕ(m)ϕ(n)\phi(mn)=\phi(m)\phi(n)ϕ(mn)=ϕ(m)ϕ(n) - 定理3:设 n=p1a1p2a2⋯psasn=p_1^{a_1}p_2^{a_2}\cdots p_s^{a_s}n=p1a1p2a2⋯psas 为 正整数 nnn 的素幂因子分解,那么:
ϕ(n)=n(1−1p1)(1−1p2)⋯(1−1ps)\phi(n)=n(1-\frac{1}{p_1})(1-\frac{1}{p_2})\cdots(1-\frac{1}{p_s})ϕ(n)=n(1−p11)(1−p21)⋯(1−ps1)
证明:因为 ϕ\phiϕ 是乘性函数,故 ϕ(n)=ϕ(p1a1)ϕ(p2a2)⋯ϕ(psas)\phi(n)=\phi(p_1^{a_1})\phi(p_2^{a_2})\cdots\phi(p_s^{a_s})ϕ(n)=ϕ(p1a1)ϕ(p2a2)⋯ϕ(psas)
由定理2,我们得到 ϕ(piai)=piai−piai−1=piai(1−1pi)\phi(p_i^{a_i})=p_i^{a_i}-p_i^{a_i-1}=p_i^{a_i}(1-\frac{1}{p_i})ϕ(piai)=piai−piai−1=piai(1−pi1)
故 ϕ(n)=p1a1(1−1p1)p2a2(1−1p2)⋯psas(1−1ps)=n(1−1p1)(1−1p2)⋯(1−1ps)\begin{aligned}\phi(n)&=p_1^{a_1}(1-\frac{1}{p_1})p_2^{a_2}(1-\frac{1}{p_2})\cdots p_s^{a_s}(1-\frac{1}{p_s})\\&=n(1-\frac{1}{p_1})(1-\frac{1}{p_2})\cdots(1-\frac{1}{p_s})\end{aligned}ϕ(n)=p1a1(1−p11)p2a2(1−p21)⋯psas(1−ps1)=n(1−p11)(1−p21)⋯(1−ps1) - 定理4:除了 n=2n=2n=2 时,ϕ(n)\phi(n)ϕ(n) 都是偶数。
证明:首先 ϕ(n)=∏ϕ(piai)\phi(n)=\prod\phi(p_i^{a_i})ϕ(n)=∏ϕ(piai)
(1)当 n>2n>2n>2 时,若含有至少一个奇素数 pip_ipi ,则 ϕ(piai)=piai−1(pi−1)\phi(p_i^{a_i})=p_i^{a_i-1}(p_i-1)ϕ(piai)=piai−1(pi−1) 是一个偶数,故此时 ϕ(n)\phi(n)ϕ(n) 是一个偶数;。
(2)当 n>2n>2n>2 时,且不含有任何奇素数,故 n=2a1n=2^{a_1}n=2a1,此时 ϕ(n)=2a1−1(2−1)=2a1−1\phi(n)=2^{a_1-1}(2-1)=2^{a_1-1}ϕ(n)=2a1−1(2−1)=2a1−1,因为 a1−1>1a_1-1>1a1−1>1 故 ϕ(n)\phi(n)ϕ(n) 是一个偶数。 - 定理5:设 nnn 是正整数,那么 ∑d∣nϕ(d)=n\underset{d|n}{\sum}\phi(d)=nd∣n∑ϕ(d)=n
证明:我们将 1∼n1\sim n1∼n 的整数构成的集合进行分类。mmm 属于类 CdC_dCd 表示 gcd(n,m)=d\gcd(n,m)=dgcd(n,m)=d
等价的表述:mmm 属于类 CdC_dCd 表示 gcd(nd,md)=1\gcd(\frac{n}{d},\frac{m}{d})=1gcd(dn,dm)=1。
所以, CdC_dCd 类中所含整数的个数是所有不超过 nd\frac{n}{d}dn 且和 nd\frac{n}{d}dn 互素的正整数的个数。
所以 CdC_dCd 类中存在 ϕ(nd)\phi(\frac{n}{d})ϕ(dn) 个整数。
因为每个数只能存在在一个类里面,故 n=∑d∣nϕ(nd)=∑d∣nϕ(d)n=\underset{d|n}{\sum}\phi(\frac{n}{d})=\underset{d|n}{\sum}\phi(d)n=d∣n∑ϕ(dn)=d∣n∑ϕ(d)
因子和与因子个数
- 因子和函数 σ\sigmaσ 定义为整数 nnn 的所有正因子之和,记为 σ(n)\sigma(n)σ(n)
因子个数函数 τ\tauτ 定义为正整数 nnn 的所有正因子的个数,记为 τ(n)\tau(n)τ(n)
容易看到,σ(n)=∑d∣nd\sigma(n)=\underset{d|n}{\sum}dσ(n)=d∣n∑d,还有 τ(n)=∑d∣n1\tau(n)=\underset{d|n}{\sum}1τ(n)=d∣n∑1 - 定理1:如果 fff 是乘性函数,那么其和函数 FFF 也是乘性函数,
即若 m、nm、nm、n互素,则 F(mn)=F(m)F(n)F(mn)=F(m)F(n)F(mn)=F(m)F(n)。
证明:
(1)首先假设 gcd(m,n)=1\gcd(m,n)=1gcd(m,n)=1,有 F(mn)=∑d∣mnf(d)F(mn)=\underset{d|mn}{\sum}f(d)F(mn)=d∣mn∑f(d)
(2)因为 gcd(m,n)=1\gcd(m,n)=1gcd(m,n)=1,故每个 mnmnmn 的因子可以唯一地写成 mmm 的因子 d1d_1d1 和 nnn 的因子 d2d_2d2 的积,且这两个因子互素,即 d=d1d2d=d_1d_2d=d1d2,所以有:
F(mn)=∑d1∣md2∣nf(d1d2)=∑d1∣md2∣nf(d1)f(d2)=∑d1∣mf(d1)∑d2∣nf(d2)=F(m)F(n)F(mn)=\underset{\underset{d_2|n}{d_1|m}}{\sum}f(d_1d_2)=\underset{\underset{d_2|n}{d_1|m}}{\sum}f(d_1)f(d_2)=\underset{d_1|m}{\sum}f(d_1)\underset{d_2|n}{\sum}f(d_2)=F(m)F(n)F(mn)=d2∣nd1∣m∑f(d1d2)=d2∣nd1∣m∑f(d1)f(d2)=d1∣m∑f(d1)d2∣n∑f(d2)=F(m)F(n) - 推论1:σ\sigmaσ 和 τ\tauτ 函数是乘性函数。
证明:
(1)设 f(n)=nf(n)=nf(n)=n 和 g(n)=1g(n)=1g(n)=1,易得该俩函数是乘性函数。
(2)由定理1得到 σ(n)=∑d∣nf(d)\sigma(n)=\underset{d|n}{\sum}f(d)σ(n)=d∣n∑f(d) 和 τ(n)=∑d∣ng(d)\tau(n)=\underset{d|n}{\sum}g(d)τ(n)=d∣n∑g(d) 是乘性的。 - 引理1:设 ppp 是一个素数, aaa 是一个正整数,那么 σ(pa)=1+p+p2+⋯+pa=pa+1−1p−1\sigma(p^a)=1+p+p^2+\cdots+p^a=\frac{p^{a+1}-1}{p-1}σ(pa)=1+p+p2+⋯+pa=p−1pa+1−1
和 τ(pa)=a+1\tau(p^a)=a+1τ(pa)=a+1 - 定理2:根据定理1,推论1和引理1,得到 n=p1a1p2a2⋯psasn=p_1^{a_1}p_2^{a_2}\cdots p_s^{a_s}n=p1a1p2a2⋯psas 的素幂因子分解,则
σ(n)=∏piai+1−1pi−1\sigma(n)=\prod \frac{p_i^{a_i+1}-1}{p_i-1}σ(n)=∏pi−1piai+1−1
和 τ(n)=∏(ai+1)\tau(n)=\prod(a_i+1)τ(n)=∏(ai+1)
【算法讲4:乘性函数(上)】欧拉函数 | 因子和函数 | 因子个数函数相关推荐
- 夜深人静写算法(三十一)- 欧拉函数
文章目录 一.前言 二.欧拉函数 1.欧拉函数定义 1)素数 2)素数的幂 3)互素数的乘积 4)一般情况 2.欧拉定理 三.欧拉函数的求解 1.素数试除法 1)算法原理 2)算法实现 2.筛选预处理 ...
- 【算法讲2:拓展欧几里得(简略讲)】求解 ax+by=c
拓展欧几里得算法 欧几里得算法简介 拓展欧几里得算法简介 [递归方法:倒序带入法] [递归代码] [递推方法:滚动变量记录法] [递推代码] 应用:如何解 ax+by=c 测试代码 欧几里得算法简介 ...
- Euler:欧拉函数&素数筛
一.欧拉函数 欧拉函数是小于x的整数中与x互质的数的个数,一般用φ(x)表示. 通式: 其中p1, p2--pn为x的所有质因数,x是不为0的整数. 比如x=12,拆成质因数为12=2*2*3, ...
- 欧拉影像放大算法(Eulerian Video Magnification)的原理和实现
原文:http://www.hahack.com/codes/eulerian-video-magnification/ 引言 人类的视觉感知存在有限的感知域.对于超出感知域的变化,我们无法感知.然而 ...
- 牛客 华华给月月出题 (积性函数+欧拉筛+快速幂)
题目描述 华华刚刚帮月月完成了作业.为了展示自己的学习水平之高超,华华还给月月出了一道类似的题: ⊕符号表示异或和,详见样例解释. 虽然月月写了个程序暴力的算出了答案,但是为了确保自己的答案没有错,希 ...
- 为何欧拉的质数公式会扰乱世界?
全文共1357字,预计学习时长4分钟 来源:Pexels 质数是现代加密学的基础. 原因很简单:到目前为止,人类还不了解它们的数学本质.但是,一旦揭开质数的神秘面纱,世界将发生巨大变化. 今天,小芯将 ...
- Euler-Maruyama discretization(欧拉-丸山数值解法)
欧拉法的来源 在数学和计算机科学中,欧拉方法(Euler method)命名自它的发明者莱昂哈德·欧拉,是一种一阶数值方法,用以对给定初值的常微分方程(即初值问题)求解.它是一种解决常微分方程数值积分 ...
- 素数筛法(传统普通、朴素筛法、埃式筛法、欧拉筛法(线性筛))
素数筛法(普通.朴素筛法.埃式筛法.欧拉筛法) 1.题目 2.分析 3.代码 传统普通 朴素筛法 朴素筛法(6.14) 埃式筛法 埃式筛法(6.14) 欧拉筛法(线性筛) 欧拉筛法(线性筛 6.14) ...
- 【算法讲5:乘性函数(中)】莫比乌斯函数 | 莫比乌斯反演 | 莫比乌斯反演应用
[算法讲5:乘性函数(中)] 前置 ⌈\lceil⌈莫比乌斯函数⌋\rfloor⌋ ⌈\lceil⌈莫比乌斯反演⌋\rfloor⌋ ⌈\lceil⌈莫比乌斯反演应用⌋\rfloor⌋ 内容出自:< ...
最新文章
- 丢了好几年的 Auto CAD又拿起来......
- 对称密码的编程使用(DES、3DES、AES)
- [CSA49G][XSY3315] Bunny on Number Line (DP)
- java 的23种设计模式 之单身狗和隔壁老王的故事
- mongodb 持久化 mysql_(转)mongodb与mysql区别
- 浅谈数据结构之主席树(线段树进阶版)
- gitz之忽略warning:LF will be replaced by CRLF
- 表格超出_?那些年Word表格你肯定踩过的坑
- 下载单独的 Google Earth 离线安装包
- C#学习笔记五——选择文件、文件夹操作
- 华为2018届校园招聘笔试题目以及相应代码分享 软件开发岗位
- matlab 优化 小于,科学网—matlab全局优化与局部优化 - 张凌的博文
- java中报405错误怎么办_405错误的解决方法
- 如何制定客户留存策略_14个成功的客户留存策略举例
- 怎么下载电脑自带的office版本
- 微软输入法的m图标怎么设置_如何在Microsoft Word中获取“ L”形的格式设置图标?...
- 概率论考研笔记(一)
- 如何在金山云上部署高可用Oracle数据库服务
- 南京晓庄学院计组期末复习限时训练03(第二章计算机的发展及应用)
- 天翼云盘免下载客户端直接用浏览器下载的方法与教程突破限制浏览器网页直接下载文件无需安装客户端