从1开始的数论

套路题 反套路题

基础概念:
1.整除 n=qm 则 m|n 约数 倍数
2.1 对于正整数 a, b,若正整数 d 满足 d | a 且 d | b,则称 d 是 a 和
b 的公约数。
2.2 a 和 b 最大的公约数称为 a, b 的最大公约数,记作 gcd(a, b) 或
者 (a, b) greatset comment divicer
2.3 性质:d 是 a, b 的公约数等价于 d | gcd(a, b)【整数的性质】
2.4 欧几里得算法 最大公约数 辗转相除法(log)
3.gcd(a,b)=1 则 ab互质
4.取整函数 高斯函数 下取整x<=x<下取整x+1
4.1 性质:[[x/a]/b]=[x/ab]成立条件(a,b都是正整数)
4.2 性质:对于正整数n,考虑1<=d<=n [n/d]
可以证明出来:[n/d]可能的取值是不超过2*根下n种
套路:对于正整数n,[1,n]中d的倍数有[n/d]个 我们要多注意这样的特殊点
例题:求和1-n [n/d]
思路:求和的转化(枚举每个i显然发非常蠢,我们可以转化,发现性质:每一个[n/d]这些一定是对应的d是一段区间 所以说按照区间来做

 

#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;

typedef long long ll;

int main()
{
    ll n;
    scanf("%lld", &n);
    ll ans = 0;
    for(int i = 1; i <= n; )
    {
        ll t = n / i, j = n / t;
        ans += (j - i + 1) * t;
        i = j + 1;
    }
    printf("%lld", ans);
    return 0;
}
View Code

 

https://app.xunjiepdf.com/pdf2ppt/
2.1调和数:Hn = 1/k 的前n个和
2.2 Hn = ln n +y +o(1)(小量)
2.3对于1-n 里面的 d 的枚举倍数 复杂度 nlogn

3.素数
3.1 算数基本定理:任何一个n都可以表示成素数的乘积,且分解唯一【互素等价于没有相同的质因子】
3.2求素数:枚举每个数的最小质因子(线性筛法,欧拉筛)
3.3 素数计数函数 π(n)表示不超过n的素数个数 则π(n) 约等于(渐进意义上,n取正无穷时) n/ln n
3.3.1 推论 n附近的素数密度近似时 1/ln n
3.3.2 第n个素数的大小约为 nln n
3.3.3类似积性函数的算法求

4.数论函数
1.定义域为正整数,值域是复数的函数
1.1若(a,b)=1,都有f(ab)=f(a)*f(b) 则f是积性函数
若任意正整数ab都有 f(ab)=f(a)*f(b) 则f是完全积性函数
1.2研究积性函数则就是研究f(p^a)来研究
1.3 求值:求f(n),对于n分解质因子,然后把所有的f(p^a)乘起来
若要求出[1,n]的f,求出每个数的最小质因子和幂次就可以了

5.单位函数
1.e(n)=[n=1] 1,n=1,0,n!=1 [condition]表示condition为真时取值为1,否则为0的函数(完全积性函数)

6.除数函数
1.表示n的因子的k次方之和 Σ(d|n) d^k 表示对n的所有约数求和
2.k=0 时是约数个数 成为 d(n) k=1 的时候记为 bulabula(n)
除数函数都是积性函数:
约数个数:分解后为 (1+a1)*)(1+a2)... 各个素因子的贡献独立

7.欧拉函数 φ(n)表示 1-n 和 n互质的正整数的个数
1.由n的分解,加上容斥原理来求解
φ(n)=n - n/p1 -n / p2 .... 容斥原理(剪多了
=n(1-1/p1)(1-1/p2)...
=(p1^a1-1(p1-1))*(p2^a-1(p2-1))..
也就是每个质因子要单独考虑 独立性 所以是积性函数
【积性函数都有独立性】
2.n=Σ(d|n) φ(n);

证明 (n,i)=d, 那么(n/d,i/d)=1 i/d<=n/d 所以这样的i一共有φ(n/d)个
所以考虑所有的d|n 也就考虑了 1-n 的所有整数
由此 n=Σ(d|n)φ(n/d) 要注意 d和n/d 再某种意义上遍历过程是等价的,只不过是顺序相反而已
以6为例

8.dieichlet 狄利克雷卷积
1.设f,g是数论函数 h(n)=Σ(d|n)f(d)g(n/d)
h = f * g;【是函数一卷卷出来另一个函数,也就是两个函数的值】
2.单位函数是狄利克雷卷积的单位元 也就是 e*f=f*e=f
3.满足交换律和结合律 (d和n/d的相对性)
证明结合律:考虑求和变换顺序
4.若f,g都是积性函数 则f*g也是积性函数【保持了元素因子独立的特性】
5.许多关系可以用卷积来表示 1表示为1的常函数
6.idk(n)=n^k,id1=id(n的取值就是n)
7.除数函数:西格玛k=1*idk
8.欧拉函数 id=φ*1
9.f,g是数论函数,计算f*g需要枚举n的所有约数
算前n项,枚举1-n的每个数的倍数 o nlogn 一般
10.技巧:按照最大公约数来分一下类

 

 

 预处理μ,按照[n/d][m/d]来分别分段(会分成跟下n个区间)如果有一个变化就跳

【经典套路】:gcd除进去,找gcd(a/b,d/b)=1;

P2303

9.mobius函数 μ(n)
μ(1)=1;n=p1*p2*..pn(n为不同的素数)否则的话 μ(n)=0
1.在n没有平方因子的时候就不是0,并且μ是极性函数【如果两个的质因子两辆不同,则答案不变】
2.性质 Σ(d|n) μ(d) = e(n); μ * 1 = e;证明如下


3.证明 n=1的时候显然成立 不等于1的时候,且d无平方因子才会有映像.

 

 欧拉函数和莫比乌斯函数的关系

 

 

10.mobius变化
f是数论函数: g(n)=Σ(d|n) f(d); 则称g是f的莫比乌斯变换,f是g的莫比乌斯逆变换 也就是g = f * 1

由莫比乌斯反演定理可知:上式的充要条件是f(n)=Σ(d|n)μ(d)f([n/d])//这里要注意的是因为特殊点的可逆性,所以这里前后的d和n/d是可以相互交换的

反演可知 g=f*1=f*e=f*1*μ=f*μ       

 

 


2.应用:用卷积解决一些列求和,替换表达式的一部分,然后调换求解顺序【这个时候就是为了化简几重变量
常用 μ*1=e id=φ*1
【经典问题:使得gcd(x,y)=1,互质的xy有多少组 如果d|gcd(x,y) 则d|x,d|y

莫比乌斯反演的普通定义:

 

 

 

 

11.指标函数 令 f(n)=[n∈P(质数)] 且 g(n)=Σ(p∈P,p|n) μ(n/p)
那么就会有 g = f * μ【也就是把条件挪到求和的里面去就可以了

 3327(约数个数和)
结论: d(ij)=Σ(x|i)Σ(y|j)[gcd(x,y)=1] i=p1^a1... j =p1^b1... 则d(ij)=(1+a1+b1)(1+a1+b2)..
假设 x=p^a y=p^b 那么就有 d(xy)=(1+a+b)
1.我们可以构造一个映射 (x,y)=1 [也就是说 x=1 y=1;x=p^k y=1;x=1 y=p^k]
d = x*j/y

 

posted @ 2020-08-27 19:11  ILH  阅读(338)  评论(0)    收藏  举报