有什么呢..其实我也不知道什么算是数论都丢上来好了
我决定把目录删掉..这样不会太早暴露智商...
[update.它居然自动帮我加了个目录
对不完全为0的非负整数 a , b , gcd(a,b) 必有整数对 (x,y) 使 ax+by=gcd(a,b) 成立。
- 显然,当 b=0 时, gcd(a,b)=a 。此时有 x=1,y=0 .
- 据欧几里德原理有 gcd(a,b)=gcd(b,amodb)
又有
于是就可以递归求解了
代码如下:
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;
}
一、解不定方程
求解形如 Ax+By=c 的不定方程
首先,若 C 能被 gcd(a,b) 整除,则方程存在整数解,否则不存在。
证明:
∵必有一组 (x0,y0) 满足 Ax0+By0=gcd(A,B)
令式子两端同乘 Cgcd(A,B) 即可得一组满足的解 (x0Cgcd(A,B),y0Cgcd(A,B))
∴设 x1=x0Cgcd(A,B) , y1=y0Cgcd(A,B) ,有 Ax1+By1=C
而得整数解的前提就是 C 能被 gcd(a,b) 整除啊。
又 Ax+By=C 的其他整数解满足:
二、解模线性方程组
同余方程 ax≡b(modn) 对未知数 x 有解当且仅当 gcd(a,n)∣b 且有解时有 gcd(a,n) 个解。即若 gcd(a,n)=1 是方程有唯一解。
三、求模下的逆元
求 a 在模 n 下的逆元,保证 gcd(a,n)=1 ,即求 ax≡1(modn) 中的 x 。
然后就转成应用2了[:那你为什么要单独列[掀桌
bzoj1407 Savage
a 在 modp 下的逆元即使该式 a×b=1(modp) 成立的 b 。
通常写成 a−1
ny[1]=1;for (i=2;i<=lim;i++) ny[i]=(LL)(p-(p/i))%p*(LL)ny[p%i]%p;
bzoj2186[SDOI2008]萨拉公主的困(you)惑
坑
引入一个东西,阶。
定义,设 a 和 n 是互质的整数, a≠n , n>0 .使得 ax≡1(modn) 成立的最小正整数 x 称为 a 模 n 的阶,并即为 ordna .
据欧拉定理,若 gcd(a,n)=1,n∈Z+ ,有 aϕ(n)≡1(modn) 。
那么就会有 ordna∣ϕ(n)
一个正整数 x ,若其所有幂次遍历模 n 的所有整数,那么它就是模 n 的一个原根。
定义,如果 r 和 n 是互质的整数且 n>0 ,那么当 ordnr=ϕ(n) 时,称 r 是模 n 的原根或者n的原根,并且我们称 n 有一原根。
若 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, pt , 2pt ,其中 p 为奇素数且 t 的正整数。
证明就不打了。。好长啊。。整整一节。。
通常最小的原根都比较小,所以最直接的方法:暴力枚举
假设枚举到 g 问是否为 n 的原根,即判断 ϕ(n) 是否为 g 模 n 的阶。枚举 ϕ(n) 的约数 p ,若有 gp≡1(modn) ,那么 g 就不是 n 的原根。因为与 gi 不同余矛盾,冲突。
但是这样会做了很多重复的东西。
其实只要枚举 ϕ(n) 的质因数 pi ,只需要检验 gϕ(n)/p1,gϕ(n)/p2,...,gϕ(n)/pm 这m个数中,是否存在一个数mod n 为1,存在就不是,就好了。
51Nod1135原根问题
若函数 f(x) 是积性函数,则有:对互质的两个数 a,b ,有 f(ab)=f(a)⋅f(b) 。
而完全积性函数是对任意 a,b 都有 f(ab)=f(a)⋅f(b)
先说下这个:
狄利克雷卷积( 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) 为小于等于 n 的正整数中与 n 互质的个数
通式 φ(n)=n(1−1p1)(1−1p2)…(1−1pk)
其中 p1,p2,…,pk 是 n 的所有质因数, n∈N∗
若有质数 P ,有 φ(pk)=(p−1)pk−1 。
由 φ(pk)=pk−pk−1 得到。因为除了 p 的倍数其他都与 pk 互质。
- 欧拉定理
若 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∗φ=Id 的证明:
二、莫比乌斯函数
对 1∗μ=ϵ 的证明:
就是一种筛法,时间复杂度是 O(n) 。因为每个数只会被筛到一次,被其最小质因子筛到。
线性筛也通常作为一种工具(?)来在线性的时间内求出一个函数的值。
对于一个想要被线筛搞出来的函数 f ,要考虑三种情况:
1、 x 是质数时, f(x) 的取值
2、 x∣i 时, f(xi) 与 f(x) 、 f(i) 的关系
3、 x∤i 时, f(xi) 与 f(x) 、 f(i) 的关系
如果都能找得到就可以用线性筛来求辣,不一定非要是积性函数。
要注意给 f[1] 赋值
下面含有 μ 和 φ 的线筛打法,代码:
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]外星人
若 f 为积性函数,且 g(n)=∑d|nf(d) ,那么 g 也是积性函数。
且有
bzoj2301 [HAOI2011]Problem b
bzoj2154 Crash的数字表格
bzoj2818 Gcd (两种做法)
bzoj2693 jzptab
bzoj3309 DZY Loves Math
bzoj3994 [SDOI2015]约数个数和
bzoj4407 于神之怒加强版
这是个低于线性时间的复杂度下解决一类积性函数的前缀和的筛法(?)。
嗯..我只学会了搞 φ 和 μ 的前缀和..
假装会了..
定义 ϕ(n)=∑ni=1φ(i) ,即欧拉函数的前缀和。
据公式 1∗φ=u ,即 ∑d|nφ(d)=n 。
移项一下就变成了 φ(n)=n−∑d|n,d<nφ(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 互质的数了啊
于是
定义 M(n)=∑ni=1μ(i) 。
同样的从公式入手,有 1∗μ=ϵ ,即 ∑d|n1×μ(d)=[n=1]
反演一下,即 1=∑ni=1[i=1]=∑ni=1∑d|iμ(d)
这个实即 ∑nd=1⌊nd⌋×μ(d)
令 i∈[1,⌊nd⌋]
所以就有 ∑nd=1∑⌊nd⌋i=1μ(d)
把 i 、 d 换一下,即有
51Nod1239
51Nod1244
bzoj3944 Sum
bzoj3512 DZY Loves Math IV
bzoj3930 [CQOI2015]选数
1、原式:
2、原式:
诶懒得复制了。。去做题吧。。推导在题解里都有。。
浅谈一类积性函数的前缀和 - skywalkert
积性函数、线性筛、莫比乌斯反演和一堆乱七八糟的题目 - jcvb
莫比乌斯反演个人小结 - femsub
初等数论及其应用(原书第六版) (美)Kenneth H.Rosen 著 夏鸿刚 译
在愚人的一天,愚了自己。
更新辣因为还有好多不会的
——2017.4.12
2017/04/15 更新内容:原根