数论总结(1)

数论定理:

1~n内的质数个数: nln(n) (实际偏小,越趋近于+∞越准确,估计复杂度是够的)

约数个数定理

定义g(x),为x的约数个数
对于一个数i,可分解成若干质数幂次的乘积,即

i=prime[1]aprime[2]b.....
g(i)=(a+1)(b+1)......

整除的基本性质

a|b b|c   =>   a|c
a|b a|c   =>   a|bc
a|b a|c   =>   a|ib±jc   (a|b,c的线性组合)
a|b b|a   =>   a=±b

a=ib±c => 公因子(a,b)=公因子(b,c)

  • 证明
  • 假设d为b,c的公因子,即d|b,d|c
  • 则 d | ib±c=a,即d|a
  • 由d|b得 d=公因子(a,b)=公因子(b,c)
  • 反之,如果d是a,b的公因数,也能证出d是b,c的公因数

互素性质

ab,c=>abc
pp|ab=>p|a  or  p|b
ab|c  and  gcd(a,c)=1=>b|c
gcd(ak,b)=1  {k>=1}=>gcd(a,b)=1
a1(modb)=>gcd(a,b)=1

算术基本定理

  • 任何一个大于1的自然数n,都可以唯一分解成有限个质数的乘积
  • n=pr11pr22...prkk
  • p1<p2<...<pk,r1,r2,...rk

模运算

  • (a+b)  mod  n=(a  mod  n+b  mod  n)  mod  n
  • (ab)  mod  n=(a  mod  nb  mod  n)  mod  n
  • ab  mod  n=(a  mod  n)b  mod  n
  • 切记 除法运算 不能模运算!!!

欧几里得算法(gcd)

辗转相除

int gcd(int a,int b)
{
    If(b>a) return gcd(b, a);
    if(b==0) return a;
    else return gcd(b,a%b);
}

辗转相减(更相减损术/Stein算法)

  • a为偶数,b为奇数 gcd(a,b)=gcd(a/2,b)
  • a为奇数,b为偶数 gcd(a,b)=gcd(a,b/2)
  • a为偶数,b为偶数 gcd(a,b)=2*gcd(a/2,b/2)
  • a为奇数,b为奇数 gcd(a,b)=gcd(b,a-b) {a>b}
  • (a或b=0 返回另一个值)或(a=b返回a或b)
证明gcd(a,b)=gcd(b,a-b)
a=b+(a-b)=>(a,b)=(b,a-b) {整除性质}
  • 优点:
  • 加法,减法和移位运算,是最基本的运算,时间消耗最小
  • 乘法,除法,取余运算较慢

扩展欧几里得算法(exgcd)

  • 求不定方程 ax+by=1 的一组解的方法
  • ax1+by1=gcd(a,b)=gcd(b,amod b)=bx2+[aa/bb]y2=ay2+b(x2y2a/b)
  • =>x1=y2
  • =>y1=x2y2(a / b)
- 用途:
1)求解不定方程;
2)求解模线性方程(线性同余方程);
3)求解模的逆元;
1)求解不定方程

利用扩展欧几里得算法求解不定方程 ax+by=n 的整数解的求解全过程,步骤如下:

(1)先计算 Gcd(a,b) ,若n不能被 Gcd(a,b) 整除,则方程无整数解;否则,在方程两边同时除以 Gcd(a,b), 得到新的不定方程 a2x+b2y=n2 此时 Gcd(a2,b2)=1 ;
(2)利用扩展欧几里德算法求出方程 a2x+b2y=1 的一组整数解 x0,y0 ,则 n2x0,n2y0a2x+b2y=n2
(3)根据数论中的相关定理,可得方程 a2x+b2y=n2 的所有整数解为:
x=n2x0+b2t
y=n2y0a2t(t=0,1,2)
调整得到正整数解.

最小公倍数(lcm)

lcma,b=ab/gcd(a,b)

快速幂

其实就是倍增的思想
a1,a2,a4...a2n 依次求出来
所以快速+幂/乘/加 都可以

ab mod n

  • b and 1 取出二进制下最后一位
  • b shr 1 去掉二进制下最后一位
  • ab=a2n......a16a8a4a2
  • 每次求出 a2i,1a2i

矩阵乘法求斐波那契数列

[acbd]n

{F[N1]=aF[N2]+bF[N1] F[N]=cF[N2]+dF[N1]

a=0b=1c=1d=1
[F[N1]F[N]]=[0111][F[N2]F[N1]]

[F[N1]F[N]]=[0111]N1[F[0]F[1]]

矩阵乘法优化递推式

例如: a[n]=a[n1]+a[n2]+5
a[N1]a[N]1=110100501a[N2]a[N1]1

线性筛

O(N)

我们知道对于一个的他的因子的大小不超过 N ,所以线性筛预处理,再取模判断即可

O(log2n)

:p  apa(modp)ap11(modp)
a,2<a<p,ap(modp)

欧拉函数

性质
欧拉函数phi(n)等于不超过n且和n互素的整数个数。 互素:两个数的最大公约数为1的数称为互素数。
1. φ(n)nn(1)
2. anaφ(n)1(mod  n)
3. pφ(p)=p1φ(1)=1
4. 积性函数 :
mnφ(nm)=φ(n)φ(m)
n=pkpφ(n)=pkp(k1)=p(k1)(p1)
5. nφ(2n)=φ(n)
6. d|n φ(d)=n
7. φ(n)=npp|np1p
单个欧拉函数求法:
int euler_phi(int n)
{
    int m=sqrt(n+0.5),ans=n;
    for(int i=2;i<=m;i++)
        if(n%i==0)
        {
            ans=ans/i*(i-1);
            while(n%i==0) n/=i;
        }
    if(n>1) ans=ans/n*(n-1);
    return ans;
}
函数表:多个欧拉函数一起求,类似筛选法计算phi(1),phi(2),……phi(n):
int phi[MM]
void phi_table(int n)
{
    mem(phi,0); phi[1]=1;
    for(int i=2;i<=n;i++)
        if(!phi[i])
            for(int j=i;j<=n;j+=i)
            {
                if(!phi[j]) phi[j]=j;
                phi[j]=phi[j]/i*(i-1);
            }
}

求解模方程组

中国剩余定理可以求解模数互质的情况,但我们用其他方式合并。
{x  mod  a1=b1x  mod  a2=b2
{x=a1x1+b1x=a2y1+b2
a1x1+b1=a2y1+b2
x1
b=a1x1+b1  a=lcm(a1,a2)
然后我们合并为 x  mod  a=b

莫比乌斯函数

性质
对于任意正整数n有:

d|nμ(d)={10d=1d>1

对于任意正整数n有:

d|nμ(d)d=φ(n)n

O(N)1nμ(i)

int isprime[N],mu[N],prime[N];
int cnt;
void Mobius(int n)
{
    int i,j;
    //Init isprime[N],mu[N],prime[N],全局变量初始为0
    cnt=0;mu[1]=1;
    for(i=2;i<=n;i++){
        if(!isprime[i]){
            prime[cnt++]=i;
            mu[i]=-1;
        }
        for(j=0;j<cnt && i*prime[j]<=n;j++){
            isprime[i*prime[j]]=1;
            if(i%prime[j])
                mu[i*prime[j]]=-mu[i];
            else {mu[i*prime[j]]=0;break;}
        }
    }
}

求逆元

逆元

它是一个可以取消另一给定元素运算的元素。
对于正整数a和m,如果有a⋅x≡1(mod m),那么把这个同余方程中x的最小正整数解叫做a模m的逆元。

前提:
a(modm),am,

定理

欧拉定理(费马小定理)

欧拉定理: amaφ(m)1(mod  m)
方法:
1.欧拉定理

根据欧拉定理 :

aϕ(m)aaϕ(m)1a111aϕ(m)1(modm)(modm)(modm)
所以 aϕ(m)1a

时间复杂度 O(n) 即求出单个欧拉函数的值。

2.exgcd
应用exgcd
我们假设a的逆元是x 。
axax+my=11(modm)
exgcdxaO(loga)
3.需要线性处理1~n的逆元
更正:本方法需在模数为素数情况下才能使用!!!
我们假设 y=ax+b, b<i, 1<x<y
在将这个式子放在 mody  意义下
ax+b0(mody)
两边同时乘上 x1b1 得到
ab1+x1x10ab1(mody)(mody)
再将 y=ax+b 带入得到
x1yx(ymodx)1(mody)
a[i]x mody 意义下的逆元,根据上式得到
a[i]=(y  div  x)a[ymodx]
1在模任何意义下逆元都是1
同时也就得到了一种 O(logN) 级别的递归求单个逆元的方法
由于每次取模,所以每次都相当于折半,复杂度就降到了 O(logN)
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 《解析与概率数论导引》是一本介绍解析和概率数论的导引性书籍。解析和概率数论是数学中的两个重要分支,通过本书的学习可以初步了解这两个领域的基本概念和方法。 首先,本书从解析数论方面入手,介绍了解析数论的基本概念和方法。解析数论是研究数论问题的一种方法,它借助解析方法和复变函数的理论来研究数论中的一些问题。本书详细介绍了解析数论中的一些基本概念,例如高斯和黎曼等函数,以及解析逼近和解析数论中的一些定理和猜想,如黎曼猜想。 其次,本书还涉及了概率数论的内容。概率数论是概率论和数论的结合,研究了数论中的随机性质和随机现象。本书介绍了概率数论中的一些基本概念,如离散随机变量和连续随机变量,以及概率数论中的一些常用定理和技巧,如拉普拉斯定理和特征函数的应用等。 通过学习本书,读者可以初步了解解析和概率数论的基本概念和方法,对这两个领域有一个整体的认识。此外,本书还提供了一些习题和案例分析,帮助读者更好地理解和应用所学知识。 总之,《解析与概率数论导引》是一本介绍解析和概率数论的导引性书籍,通过学习本书可以初步了解解析和概率数论的基本概念和方法,对这两个领域有一个整体的认识。这对于对解析和概率数论感兴趣的读者来说是一本很有价值的学习资料。 ### 回答2: 《解析与概率数论导引》是一本介绍解析与概率数论基础知识的PDF文件。这本导引首先介绍了解析的基本概念和理论,包括复数域上的解析函数、柯西—黎曼方程及其应用、解析函数的级数展开等。进一步,导引还涉及到解析函数的性质,如极值原理、最大模原理等。这些知识为理解解析函数的基本特性提供了基础。 其次,导引也包含了对概率数论基础的介绍。概率数论是数学中的一个重要分支,主要研究随机事件及其数学性质。这本导引详细介绍了概率论的基本概念和原理,包括事件、概率、条件概率、随机变量等。在此基础上,导引进一步阐述了期望、方差、随机过程等概念,以及它们的计算方法和性质。 通过解析与概率数论导引,读者可以获得解析与概率数论的基础知识。这些知识在数学理论研究和实际问题中有着广泛的应用,尤其在统计学、金融学、计算机科学等领域中发挥着重要作用。同时,导引中还涉及了一些实际例子和习题,帮助读者巩固所学知识。 总结起来,解析与概率数论导引PDF是一本介绍解析与概率数论基础知识的资料。通过阅读此导引,读者可以系统地学习解析函数和概率数论的基本理论和应用。这对于提高数学素养、解决实际问题具有重要意义。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值