【学习笔记】数论入门基础

积性函数与完全积性函数

e(n)=[n=1]
I(n)=1
id(n)=n

迪利克雷卷积

h=fg 表示 f,g 的迪利克雷卷积为 h

h(n)=d|nf(d)g(nd)

迪利克雷卷积有交换律、结合律、分配律:

fg=gf(fg)h=f(gh)f(g+h)=fg+fh

性质:

  • f,g 均为积性函数,则 fg 也是积性函数:暴力拆开证明

莫比乌斯反演

定义:

μ(n)={0(n)1(n)1(n n=1)

性质:

  • μ 是一个积性函数:暴力唯一分解
  • μI=ed|nμ(d)=[n=1]
  • fI=gf=μgd|nf(d)=g(n)d|ng(d)μ(nd)=f(n) 注意:不要求 f,g 为积性函数
  • n|df(d)=g(n),f(n)=n|dg(d)μ(dn)

欧拉函数

性质:

  • 积性函数
  • φI=idd|nφ(d)=n

整除分块

nin 种取值:分类讨论

部分证明(自己写的不严谨)

(1)若 f,g 为积性函数,则 fg 也为积性函数
fg=h,设 (a,b)=1,那么就有:

h(ab)=d|abf(d)g(abd)

d=d1d2(d1,d2)=1,则

h(ab)=d1|a,d2|bf(d1d2)g(ad1bd2)=(d1|af(d1)g(ad1))×(d2|bf(d2)g(bd2))=h(a)h(b)

(2)μ 是一个积性函数:

  1. 1 时显然成立
  2. μ(ab)(a,b)=1,因为 (a,b)1 所以 a,b 不含有除 1 外的公因数,所以当 a 不含有平方因子且 b 不含有平方因子的时候 ab 也不含有平方因子。而剩余情况就相当于一个奇偶的乘也显然可以满足条件。

(3)μI=e
显然当 n=1 时成立,考虑 n1 时。

e(n)=d|nμ(d)

我们只需证明 μ11 成对出现,那么即可证明。我们设 pn 的最小质因子,对于含有 p 为因子的 d 我们就将 p 除掉,显然 μ(d)+μ(dp)=0。对于不含有 p 为因子的 d 我们将 p 乘上,显然 μ(d)+μ(dp)=0,因为 d,pn 的约数所以若 d 中不含有 p 那么将 d 乘以 p 也不会超过 n 的范围。

(4)fI=ggμ=f
将第一个式子两边同时卷 μ,得:

fIμ=gμ

因为迪利克雷卷积具有结合律所以:

f(Iμ)=gμfe=gμ

下面只需证明 fe=f 即可,暴力展开一下:

f(n)=d|nf(d)e(nd)

nd=1 时式子有值,其余情况均为 0,此时 d=nf(n)=f(n) 也就是 fe=f
所以可以得出:

fI=ggμ=f

同理反过来即两边同乘 I,也可以得出。

(5)φI=id

根据 φ 的基本定义:

φ(n)=i=1n[(i,n)=1]

来一波莫反:

φ(n)=i=1nd|i,d|nμ(d)=d|nμ(d)nd

就是把 d|i 给加到了 i 的上面,对于每一个 d 判断有多少个 i 满足条件。
这样我们也就证明了 μid=φ,根据(4),则可以推出 φI=id

题解

A - 公约数的和

这种题就是推式子:(为了防止初学很懵,就写了超多的文字描述)
1.考虑原式的各种限制条件给他改一改

i=1nj=i+1ngcd(i,j)=i=1nj=1ngcd(i,j)i=1ngcd(i,i)2

2.也就是相当于数据范围增大然后去掉 i=j 的情况。现在问题就转化为了化简左上角这一坨。

i=1nj=1ngcd(i,j)=d=1ndi=1nj=1n[gcd(i,j)=d]

3.[A] 代表若 A 满足则为 1,否则为 0d 的范围是因为要使得 gcd=dd 只能是这些取值,继续套路化简:

d=1ndi=1nj=1n[gcd(i,j)=d]=d=1ndi=1ndj=1nd[gcd(i,j)=1]

4.我们其实就是相当于将枚举 i,j 变成了枚举 id,jd,很显然原式的值并不会变。下面就是非常的套路了:

d=1ndi=1ndj=1nd[gcd(i,j)=1]=d=1ndi=1ndj=1ndk|i,k|jμ(k)

5.这里就是 μ 的性质,但是将 k|gcd(i,j) 变成 k|i,k|j,证明见下面。继续化简:

d=1ndi=1ndj=1ndk|i,k|jμ(k)=d=1ndk=1nμ(k)i=1ndkj=1ndk1

6.这里也就是将枚举 k 提前,并且将 id,jd 变成 idk,jdk,这样就可以继续化简:

d=1ndk=1nμ(k)i=1ndkj=1ndk1=d=1ndk=1nμ(k)ndk2

7.我们考虑设 T=dk,然后化简就有:

d=1ndk=1nμ(k)ndk2=T=1nnT2d|Tdμ(Td)

8.最后面的这一坨也就是 μid=φ,所以最终可以化简为:

T=1nnT2d|Tdμ(Td)=TnnT2φ(T)

下面求解就直接上一个数论分块再预处理一下 φ 的前缀和就好了。

说明(证明):简记 gcd(i,j)=(i,j)

3.d 的范围:因为 d 就是我们枚举的 (i,j),显然这个东西的范围就是 [1,n]
5.k 的范围:观察我们的后面,我们的目的是为了让 ndk>0 那么也就是 k 的范围就是 [1,n]
5.k|(i,j)k|i,k|j:(暂时鸽了)
7.注意到一点我们只有 dkn 时我们的式子才有值,所以我们就枚举 T[1,n],那么能使得这个成立的 d,k,显然就是我们枚举一个 d|T 然后 k 也就是 Td

posted @   linyihdfj  阅读(232)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示