数论读书笔记——算数基本定理

本文详细介绍了欧几里得算法,包括其原理、应用及复杂度,强调了它在求最大公因子中的效率。此外,讨论了线性组合表示最大公因子的方法,并引入了算数基本定理,阐述了素因子分解的重要性及其在解决丢番图方程和求解最大公倍数中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

欧几里得:

欧几里得算法:

定理1:整数a≥b>0,令r0=a,r1=b如果我们做带余除法得到rj=r(j+1)q(j+1)+r(j+2),且0<r(j+2)<r(j+1),j=0,1,2,…,n-2且r(n+1)=0,那么(a,b)=rn,即最后一个非零余数

从定理中我们看到通过带余除法,在每一步中被除数和除数被更小的数代替,这些更小的数实际上是每一步中的除数和余数么运算直到余数为0时终止。这一系列的运算产生了一系列的等式,而最大公因子就是最后一个非零的余数

引理1:如果e和d是整数且e=dq+r,其中q,r是整数么那么(e,d)=(d,r)

所以得到gcd的模板

LL gcd(LL a,LL b)

{

    If(b==0)return a;

    Return gcd(b,a%b);

}

欧几里得算法是一种快速地求最大公因子的方法

接下来,当我们估算用欧几里得算法求两个整数的最大公因子时用到除法的最大步数时会看到这一点。但是,我们首先要证明的,对于一个给定的正整数n,存在整数a,b使得用欧几里得方法求(a,b)恰好需要n步除法。我们可以通过斐波那契序列中连续的项来求这样的整数。

用欧几里得算法求斐波那契序列中连续项的最大公因子的速度很慢,因为除了最后一步,其余的每一步的商都是1,例如(34,55)需用8次除法,且互质。

下面定理告诉我们用欧几里得算法求斐波那契序列中连续两项的最大公因子需要多少步除法.

定理2:令f(n+1)和f(n+2)(n>1)是斐波那契序列中连续两项。那么用欧几里得算法证明(f(n+1),f(n+2))一共需要n步。

欧几里得算法的计算复杂度:拉梅定理:用欧几里得算法计算两个正整数的最大公因子时,所需的除法次数不会超过整数中较小的那个十进制数的位数的5倍。(定理3)

推论:求两个正整数a,b。a>b的最大公因子需要O((log2a)^3)(log以2为底a的对数的立方)次的运算。

 

用线性组合的方法来表示最大公因子:

欧几里得算法可以得到用两个整数的线性组合来表示他们的最大公因子。

一般地吗,为了知晓如何使用a,b的线性组合来表示他们的最大公因子d=(a,b),我们就要涉及欧几里得算法中产生的一系列的等式。由倒数第二个等式我们有:

rn=(a,b)=r(n-2)-r(n-1)*q(n-1)

这就用r(n-2)和r(n-1)的线性组合表示了(a,b)。那么倒数第三部就将r(n-1)用r(n-3)-r(n-2)q(n-2)来表示。即

r(n-1)=r(n-3)-r(n-2)*q(n-2),

用这个等式来小区上面的表达式中的r(n-1),那么

(a,b)=r(n-2)-(r(n-3)-r(n-2)*q(n-2))*q(n-1)

       =(1+q(n-1)*q(n-2))r(n-2)-q(n-1)*r(n-3)

这就将(a,b)表示成了r(n-2),r(n-3)的线性组合。我们继续沿着欧几里得算法相反的步骤将(a,b)表示成接下来的余数的线性组合,直到我们求的(a,b)表示成r0=a,r1=b的线性组合。对于特定的j,如果我们已经求的

(a,b)=s*rj+t*r(j-1)

那么,因为

rj=r(j-2)-r(j-1)*q(j-1)

我们有

(a,b)=s(r(j-2)-r(j-1)q(j-1))+tr(j-1)

        =(t-sq(j-1))r(j-1)+sr(j-2)

这显示了如何沿着欧几里得算法产生的等式递进,最终使得a和b的最大公因子(a,b)可以表示成他们的线性组合。

这种将(a,b)表示成a,b线性组合的方法在计算上很不方便,因为它必须给出欧几里得算法的步骤,并且保存这些步骤,然后沿着欧几里得算法相反的步骤将(a,b)表示成一对相邻的余数的线性表示。有另一种计算(a,b)方法,只需要用一次欧几里得算法。

这个方法就是扩展欧几里得算法。

定理4:令a,b是正整数,那么

(a,b)=Sn*a+Tn*b

其中Sn,Tn是下面定义的递归序列的第n项

S0=1,T0=0,

S1=0,T1=1

且     Sj=S(j-2)-Q(j-1)S(j-1)    Tj=T(j-2)-Q(j-1)T(j-1)

其中j=2,3,…,n,qj是欧几里得算法中每一步的商

 

线性丢番图方程:解不定方程

背景:当我们需要求解特定方程的整数解的时候,那么就得到了一个丢番图方程,这些方程是根据丢番图(diophantus)命名的。他写下了一些方程并将解限定在有理数域上。方程ax+by=c上的格点。第一个解是由婆罗摩笈多(brahmagupta)给出的

定理1:设a,b是整数且d=(a,b)。如果c不能被d整除那么方程ax+by=c没有整数解。如果c能被d整除那么存在无穷多个整数解,另外,如果x=x0,y=y0是方程的一个特解,那么所有的解可以表示为:

X=x0+(b/d)*n

Y=y0-(a/d)*n

其中n是整数

定理2:如果a1,a2,…,an是正整数,那么方程a1x1+a2x2+…+anxn=c有整数解当且仅当d=(a1,a2,……,an)能整除c,另外当存在一个解的时候,那么方程有无穷多个解

解n元一次不定方程a1x1+a2x2+…+anxn=c(a1,a2,…,an∈N)时,可先顺次求出(a1,a2)=d2,(d2,a3)=d3,……,(d(n-1),an)=dn.若c能被dn整除,则方程有解,作方程:

A1x1+a2x2=d2t2

D2t2+a3x3=d3t3

……

D(n-1)t(n-1)+anxn=c

求出最后一个方程的所有解,然后把tn-1的每一个值代入倒数第二个方程,求出它的所有解,依次类推,即可得所有解。

M个n元一次不定方程组成的方程组,其中m<n,可以消去m-1个未知数,从而消去m-1个不定方程,将方程组转化为1个n-m+1元的一次不定方程。

 

算数基本定理

定理1(算术基本定理):每个大于1的正整数都可以被唯一地写成素数的乘积,在乘积中的素因子按照非降序排列。有时算术基本定理被扩展应用到整数1,即1被看作是唯一地被写成素数的空乘积。

引理1:如果a,b和c是正整数,满足(a,b)=1 且a|bc 则a|c

引理2:如果p整除a1*a2*...*an,其中p为素数,且a1,a2,…,an是正整数,则存在整数i,1≤i≤n,使得p整除ai

唯一因子分解在哪里不成立:每个正整数有唯一的素分解这个事实是整数集合与其他一些集合共有的一个特殊性质,但在丢番图方程x^n+y^n=z^n。他们可以用某一特别类型的代数数的唯一分解形式证明,当n为整数且n≥3时,这个方程没有非零整数解(费马最后定理的结果)。但是这些数并不具有唯一分解的性质,因此假设的证明是不正确的。

素因子分解的应用:

一个正整数n的素幂分解包含了关于n的本质信息。给定这一分解,我们立即可以得到一个素数p是否能够整除n,因为p整除n当且仅当它出现在这个分解中。一个素数p能整除n的最高次幂是这个素数在n的素幂分解中的幂次。而且,一个整数d整除n当且仅当d的素幂分解中出现的所有素数都在n的素幂分解中出现的所有素数都在n的素幂分解中出现,且其出现的幂次至少要与在d的素幂分解中的幂次一样大

我们可以应用素分解的另一个途径是求最大公因子

为了一般地描述如何用素分解来求最大公因子,设min(a,b)为两个数a和b中较小的,或者说最小值。现在设a和b的素分解为

a=p1^a1*p2^a2*...*pn^an  ,   b=p1^b1*p2^b2*...*pn^an

其中每个次数都是非负整数,在上述两个乘积中都包含了a和b的素分解中的所有素数,次数有可能为0.我们注意到:

    最大公约数:(a,b)=p1^min(a1,b1)*p2^min(a2,b2)...pn^min(an,bn)

因为对每个素数pi,a和b恰好共同拥有min(ai,bi)个因子pi

素分解哈可以用来求同时为两个正整数的倍数的最小整数。当分数相加时,就会遇到求这种整数的问题

定义:两个非零整数a和b的最小公倍数是能够被a和b整除的最小正整数。

a和b的最小公倍数记为[a,b]

一旦我们知道了a和b的素分解

最小公倍数:(a,b)=p1^max(a1,b1)*p2^ max(a2,b2)...pn^ max(an,bn)

引理:如果x和y为实数,则max(x,y)+min(x,y)=x+y

定理:如果a和b是正整数,则[a,b]=ab/(a,b),其中[a,b]为最小公倍数(a,b)为最大公约数

引理:设m和n是互素的正整数,那么如果d是mn的一个正因子,则存在唯一的一对m的正因子d1和n的正因子d2使得d=d1*d2.反之,如果d1和d2分别是m和n的正因子,则d=d1*d2是mn的正因子

狄利克雷定理中一中特殊情形的证明:唯一因子分解可以用来证明狄利克雷定理的一中特殊情形,狄利克雷定理表明当a和b为互素的正整数时等差数列an+b包含无穷多的素数。

定理:存在无穷多个形如4n+3的素数,其中n为正整数

引理:如果a和b都是形如4n+1的整数,则乘积ab也是这种形式

关于有理数的结果:如果α是有理数,则我们可以有无穷多种方法把α写成两个整数的商,因为如果α=a/b,其中a和b是满足b!=0的整数,则只要k为非零整数就有α=ka/kb。易见一个正有理数可以被唯一地写成两个互素的正整数的上;当这样写的时候,我们说这个有理数为既约的(lowest term)。我们注意有理数11/21是既约的

定理:设α为多项式x^n+C(n-1)x^n-1+...+C1x+C0的根,其中系数C0,C1,...,Cn-1为整数,则α或者是整数或者是无理数

还有一个定理我打不出来。。。是算数基本定理将黎曼zeta函数和素数联系起来的。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值