数论的小总结
来源:互联网 发布:curl php 编辑:程序博客网 时间:2024/05/18 02:56
有什么呢..其实我也不知道什么算是数论都丢上来好了 我决定把目录删掉..这样不会太早暴露智商...
[update.它居然自动帮我加了个目录
拓展欧几里德算法
实现方式
对不完全为0的非负整数
- 显然,当
- 据欧几里德原理有
又有
∴
即
于是就可以递归求解了
代码如下:
void exgcd(int a,int b,int &d,int &x,int &y){ if (b==0) { x=1,y=0;d=a; return; } exgcd(b,a%b,d,x,y); int t=x;x=y,y=t-a/b*y;}
应用
一、解不定方程
求解形如
首先,若
证明:
∵必有一组
令式子两端同乘
∴设
而得整数解的前提就是
又
于是即可由一组解
设
二、解模线性方程组
同余方程
然后就转成应用1了
三、求模下的逆元
求
然后就转成应用2了[:那你为什么要单独列[掀桌
题目
bzoj1407 Savage
逆元
口胡定义
通常写成
求法
- 据费马小定理:
假如p 是质数,且gcd(a,p)=1 即a 、p 互质,那么有ap−1≡1(modp) 。
即a×ap−2≡1(modp)
所以a 在modp 下的逆元为ap−2 ,这个可以快速幂求得。
注意条件哦。 - 应用拓展欧几里德求解方程(展开就懒得打了)
⋆ 线性求逆元
前提:p 为质数
有a−1=(p−⌊pa⌋)×(pmoda)−1modp
证明:
令k=⌊pa⌋,r=pmoda ,有p=ka+r
∴ka+r≡0(modp) (ka+r)a−1⋅r−1≡0(modp)
即(k+a−1⋅r)r−1≡0(modp)
即kr−1+a−1≡0(modp)
∴(拆开)a−1=−⌊pa⌋⋅(pmoda)−1(modp)
∴a−1=(p−⌊pa⌋)×(pmoda)−1modp
ny[1]=1;for (i=2;i<=lim;i++) ny[i]=(LL)(p-(p/i))%p*(LL)ny[p%i]%p;
题目
bzoj2186[SDOI2008]萨拉公主的困(you)惑
中国剩余定理
坑
原根
引入一个东西,阶。
定义,设
据欧拉定理,若
那么就会有
口胡定义
一个正整数
定义,如果
性质(?反正是一些相关的定理或者推论吧)
若
g 是模n 的一个原根,g 和n 互质且n>0 ,那么g1,g2,…,gϕ(n) 构成模n 的既约剩余系。即有gimodn ,1≤i≤ϕ(n) 的结果互不相同。既约剩余系[来自度娘
在模n的值与n互质的全部剩余类中,从每一类中各任取一数所组成的数的集合,叫做模n的一个简化剩余系,也叫缩系。也可以理解为,在每个剩余类选取至1个与m互素代表元构成简化剩余系。
模n的简化剩余系中元素的个数为φ(n)(既欧拉函数)令
r 是n 的原根,n>1 且n∈Z ,那么ru 是n 的一个原根当且仅当(u,ϕ(n))=1 .
于是得到如下定理,如果正整数n 有一个原根,那么他一共有ϕ(ϕ(n)) 个不同余的原根
存在性
并非所有整数都有原根,例如没有模8的原根。
一个正整数有原根当且仅当它为2,4,
证明就不打了。。好长啊。。整整一节。。
求解方法
通常最小的原根都比较小,所以最直接的方法:暴力枚举
假设枚举到
但是这样会做了很多重复的东西。
其实只要枚举
模板题目
51Nod1135原根问题
积性函数
口胡定义
若函数
而完全积性函数是对任意
先说下这个:
狄利克雷卷积(Dirichlet 卷积)
对两个算术函数f 、g ,定义其狄利克雷卷积为新函数:
(f∗g)(n)=∑d|nf(d)⋅g(nd)
*把定义在正整数集的函数称为算术函数
其实就相当于定义新运算(?),将f 卷g ,表达为f∗g 。
性质:
交换律:f∗h=g∗f
结合律:(f∗g)∗h=f∗(g∗h)
单位元:f∗ϵ=f
对逐点加法的分配律:f∗(g+h)=f∗g+f∗h
性质
- 若
n=pa11pa22…pakk (p 为质数),有f(n)=f(pa11)f(pa22)…f(pakk) 。 - 若
f 为积性函数且有f(pn)=fn(p) ,那么f 为完全积性函数。 - 若
f 、g 为积性函数,那么f∗g 也为积性函数(就是指狄利克雷卷积)。 - 积性函数的前缀和也是积性函数。
- 对于
f(n)=∑d|ng(d) ,只要有一者积性,两者都积性。
常见的积性函数(必记)
Id(n) ——单位函数,也有作u(n) 。定义Id(n)=n Idk(n) ——单位幂函数,定义Idk(n)=nk ⋆φ(n) ——欧拉函数⋆μ(n) ——莫比乌斯函数ϵ(n) ——当且仅当n=1 时,ϵ(n)=1 ;否则ϵ(n)=0 d(n) ——n 的约数个数σ(n) ——n 的约数之和
常用的公式
⋆1∗μ=ϵ ,1 是恒等函数恒等于1.⋆1∗φ=Id (Id∗φ)∗Id=Id2
重点的展开
一、欧拉函数
通式
其中
若有质数
由
- 欧拉定理
若n 和a 皆为正整数,且n 与a 互质,则aφ(n)≡1(modn) 。
可推出:当x≡y(modφ(n)) 时且a 与n 互质时,ax≡ay(modn) - 有
ax≡axmodφ(n)+φ(n)(modn) ,x≥φ(n) 。[不要求a ,n 互质]
对
对以
所以有
即
二、莫比乌斯函数
性质
1.
2.
对
设
据
即
所以
线性筛
就是一种筛法,时间复杂度是
线性筛也通常作为一种工具(?)来在线性的时间内求出一个函数的值。
对于一个想要被线筛搞出来的函数
1、
2、
3、
如果都能找得到就可以用线性筛来求辣,不一定非要是积性函数。
要注意给
下面含有
void pre(){ cnt=0;mu[1]=1;phi[1]=1; for (LL i=2;i<=lim;i++) { if (!ispri[i]) {pri[++cnt]=i;mu[i]=-1;phi[i]=i-1;} for (LL j=1;j<=cnt && i*pri[j]<=lim;j++) { ispri[i*pri[j]]=true; if (i%pri[j]==0) { mu[i*pri[j]]=0; phi[i*pri[j]]=phi[i]*pri[j]; break; } mu[i*pri[j]]=-mu[i]; phi[i*pri[j]]=(pri[j]-1)*phi[i]; } } //for (LL i=2;i<=lim;i++) phi[i]+=phi[i-1],mu[i]+=mu[i-1];}
题目(有关积性函数跟线性筛的)
bzoj2705[SDOI2012] Longge的问题
bzoj2440 [中山市选2011]完全平方数
bzoj2005 [Noi2010]能量采集
bzoj2226[Spoj 5971] LCMSum
bzoj2818 Gcd
bzoj3529 数表
bzoj2749 [HAOI2012]外星人
⋆ 莫比乌斯反演
若
且有
证明:
∵
又有
∴
即
题目
bzoj2301 [HAOI2011]Problem b
bzoj2154 Crash的数字表格
bzoj2818 Gcd (两种做法)
bzoj2693 jzptab
bzoj3309 DZY Loves Math
bzoj3994 [SDOI2015]约数个数和
bzoj4407 于神之怒加强版
杜教筛
这是个低于线性时间的复杂度下解决一类积性函数的前缀和的筛法(?)。
嗯..我只学会了搞
假装会了..
φ(d) 的前缀和
定义
据公式
移项一下就变成了
如果是直接理解为什么
∑d|n,d<nφ(d) 表示小于等于n 且不与n 互质的数的个数的话
那么就将它写成∑d|n,d<nφ(nd) .
把小于等于nd 且与nd 互质的减掉即把与n 的gcd 为d 的数减掉
又d 是n 是约数
所以∑d|n,d<nφ(d) 就表示小于等于n 且不与n 互质的数了啊
于是
把
即
换一下元,
于是后面那块也变成了前缀和
综上,即有
μ(d) 的前缀和
定义
同样的从公式入手,有
反演一下,即
这个实即
令
所以就有
把
后面那个就是莫比乌斯的前缀和,改成
又
所以有
题目
51Nod1239
51Nod1244
bzoj3944 Sum
bzoj3512 DZY Loves Math IV
bzoj3930 [CQOI2015]选数
常用套路 怎么全是套路![掀桌.jpg
常见的解题步骤
- 根据题意列出式子
- 画柿子,直到画出自己想要的或者说能在时间内求得的
- 通常要预处理某个函数的前缀和,考虑暴力
O(nlogn) 、线性筛O(n) 、杜教筛O(n23) (听说的..)。。如果都不行。。我也不会了。。 - 最后通常都要分块
O(n√) ,利用之前预处理的函数前缀和或求和公式来处理。
等价变化的套路
- 枚举最小公约数;
- 内外层求和对调,通常是交换枚举倍数和约数;
- 有意识得化成
gcd=1 这样的的式子利用莫比乌斯反演; - 有时候想着直接反演之前考虑一下欧拉函数,可能欧拉化的更简单;
- 换元,比如
∑nd=1∑⌊nd⌋t=1XXndtX 这种时候,通常设D=dt 来进行换元; - 要多想想式子的实际意义,可以通常意义来等价变化
- 把能提的先提出来
一些公式推导的栗子
1、原式:
交换枚举约数和倍数:
∵有
所以有:
即
2、原式:
诶懒得复制了。。去做题吧。。推导在题解里都有。。
感想= =
- 感觉套路很深,像是定义几个函数(能预处理的)来套用化简,或者说是把化得的某串东西当成一个函数来求 之类的,这样的我都不会。怎么说,就是碰到了没有一点感觉。
- 对什么时候能直接暴力做还是要继续化简没有准确的预估。
- 画柿子画到不会画了但是又求不出来的时候..看了一眼题解..woc怎么这么套路
- 熟练应用各种性质是很重要的[但是我做不到啊QAQ]
学习资料
浅谈一类积性函数的前缀和 - skywalkert
积性函数、线性筛、莫比乌斯反演和一堆乱七八糟的题目 - jcvb
莫比乌斯反演个人小结 - femsub
初等数论及其应用(原书第六版) (美)Kenneth H.Rosen 著 夏鸿刚 译
附言
- 题目不一定按难易程度排,而且只是bo主自己做了的
- 写在上面的题目一般都写了题解
- bo主语文不好脑子也不好使,可能全在口胡
- bo主从来只有被套路,因为自己不会套路QAQ
- 为什么看起来写了很多但是都没有什么很厉害的东西QAQ
- 算了就这样吧,欢迎指错..
在愚人的一天,愚了自己。
愚人节快乐!
更新辣因为还有好多不会的
——2017.4.12
2017/04/15 更新内容:原根
- 数论的小总结
- 数论小总结
- 数论常用小知识总结
- 数论的一些小问题
- 简单的数论小知识
- NYoj 416 数论的一个小知识
- nyoj-小明的密钥(362)--数论
- 【数论】[CQOI2017]小 Q 的表格
- [bzoj5071][数论]小A的数字
- [NOIP] [数论] NOIP2017Day1 小凯的疑惑
- ACM数论一些简单结论和编程小技巧总结
- 数论总结
- 数论总结
- 数论总结
- 数论总结
- 数论总结
- 数论总结
- 数论总结
- java.sql.Data java.util.Data的转换 及时间格式化后的两者之间的转换,数据库中时间存储格式
- mongodb配置
- Realm For Android详细教程
- 在vue2.0项目中一个简单的倒计时功能
- <Ejb3InAction> Sample03 for Glassfish
- 数论的小总结
- Mac JDK版本过高,降级方法,亲测可行
- [蓝桥杯]-分机号
- BarTender 2016表单中的“秤显示”控件
- 【程序之道一】程序员的思维和执行力
- ACM Fibonacci数 (Java)
- 跨浏览器测试
- mySQL安装教程及常见问题
- redis搭建集群