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

欧几里得:

欧几里得算法:

定理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的对数的立方)次

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值