「笔记」积性函数


积性函数

定义

gcd(x,y)=1f(xy)=f(x)f(y),则 f(n) 为积性函数。

性质

f(x)g(x)均为积性函数,则以下函数也为积性函数:

h(x)=f(xp)h(x)=fp(x)h(x)=f(x)g(x)h(x)=dxf(d)g(xd)

常见积性函数

  • 单位函数 e(n)=[n=1]
  • 幂函数 Idk(n)=nkid1(n) 通常简记为id(n)
  • 常数函数 1(n)=1
  • 因数个数 d(n)=dn1
  • 除数函数 σk(n)=dndk
    k=1 时为因数和函数,通常简记为 σ(n)
    k=0 时为因数个数函数 σ0(n)
  • 欧拉函数 φ(n)=i=1n[gcd(i,n)=1]
  • 莫比乌斯函数 μ(n)={1n=10n 含有平方因子(1)kk n 的本质不同质因子个数

不是很懂上面写的什么玩意?
不用深究,有个印象继续往下看就好。


莫比乌斯函数

定义

μ 为莫比乌斯函数,定义为

μ(n)={1n=10n 含有平方因子(1)kk n 的本质不同质因子个数

解释

n=i=1kpici,其中pi为质因子,ci1

  1. n=1时,μ(n)=1
  2. n1时 ,
    • i[1,k],ci>1 时,μ(n)=0
      当某质因子出现次数大于1时,μ(n)=0
    • i[1,k],ci=1 时,μ(n)=(1)k
      当每个质因子只出现一次时,即n=i=1kpi{pi}中元素唯一。
      μ(n)=(1)k,此处k为质因子的种类数。

性质

莫比乌斯函数是积性函数,且具有以下性质

dnμ(d)=[n=1]

证明,设 n=i=1kpici,n=i=1kpi

  • 根据莫比乌斯函数定义,则有:dnμ(d)=dnμ(d)
  • n 的某因子 d,有 μ(d)=(1)i,则它由 i 个 本质不同的质因子组成。
    由于质因子总数为 k,满足上式的因子数为 Cki
  • 对于原求和式,转为枚举 μ(d) 的值。
    dnμ(d)=i=0kCki×(1)i=i=0kCki×(1)i×1ki
    根据二项式定理,上式 =(1+(1))k
    易知该式在 k=0,即 n=0 时为 1,否则为 0

补充结论

反演结论:

[gcd(i,j)=1]dgcd(i,j)μ(d)

证明 1:
n=gcd(i,j),则右=dnμ(d)=[n=1]=[gcd(i,j)=1]= 左。

证明 2:
暴力展开:[gcd(i,j)=1]=e(gcd(i,j))=dgcd(i,j)μ(d)

线性筛求莫比乌斯函数

μ 为积性函数,因此可以线性筛莫比乌斯函数。

复制复制
int cnt, Mobius[kMaxn], Prime[kMaxn];
bool vis[kMaxn];
void GetMobius() {
Mobius[1] = 1;
for (int i = 2; i <= n; i ++) {
if (!vis[i]) Mobius[i] = - 1, Prime[++ cnt] = i;
for (int j = 1; j <= cnt && i * Prime[j] <= n; j ++) {
vis[i * Prime[j]] = true;
if (i % Prime[j] == 0) break;
Mobius[i * Prime[j]] = - Mobius[i];
}
}
}

狄利克雷(Dirichlet)卷积

建议阅读 算法学习笔记(35): 狄利克雷卷积 By: Pecco

定义两个数论函数 f,g 的狄利克雷卷积为

(fg)(n)=dnf(d)g(nd)

性质

  1. 显然满足 交换律,结合律,分配律。
    • fg=gf
    • (fg)h=f(gh)
    • f(g+h)=fg+fh
  2. e 为狄利克雷卷积的单位元,有(fe)(n)=f(n)
  3. f,g 为积性函数,则 fg 为积性函数。

关于单位元 e

有:

e=μ1=dnμ(d)

证明

(fe)(n)=dnf(d)e(nd)=dnf(d)[nd=1]

  • 对于[nd=1],当且仅当 nd=1,即 d=n 时为 1,否则为0
  • 则当 d=n 时,f(d)[nd=1]=f(n)
    dn 时,f(d)[nd=1]=0

综上,(fe)(n)=dnf(d)[nd=1]=f(n),满足单位元的性质。
e=μ1 成立。

除数函数与幂函数

幂函数 Idk(n)=nk
除数函数 σk(n)=dndk

显然有:

(Idk1)(n)=dnIdk(d)=dndk=σk

k=0 时,Id0=1σ0 为因数个数函数,有:

(11)(n)=dn1=σ0

欧拉函数与恒等函数

φ1=Idφ=Idμ

对于一式,当 n=pm 时(p 为质数),有:

(φ1)(pm)=dnφ(d)=φ(1)+i=1mφ(pi)=1+i=1m(pipi1)=pm

pi 的因子有 pi1 个,为 1pi1,故 φ(pi)=pipi1

(φ1)(n) 为积性函数,则对于任意正整数 n,有:

(φ1)(n)=(φ1)(pm)=(φ1)(pm)=pm=n

得证。

对于 2 式,在 1 式基础上两侧同时 μ 即得。
左侧变为 φ1μ=φe=φ


写在最后

算法学习笔记(35): 狄利克雷卷积 By: Pecco

希望人没事

posted @   Luckyblock  阅读(669)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示