欧几里德(Euclid)算法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
欧几里德(Euclid )算法
首先我们介绍整数的带余除法,它是整个数论的基础性定理之一。 定理1 (带余除法)设Z b a ∈,且0≠b ,那么存在一对整数q 和r ,使得
r bq a +=且||0b r <≤ (1)
满足以上条件的整数q 和r 是唯一确定的。
由(1)式显然有(a ,b )=(b ,r )
我们知道,对于两个整数a 和b ,可以对其进行分解来计算它们的最大公因数,但对于大整数而言,目前还没有足够有效的办法进行。实际中常用的用来计算两个数的最大公因数的算法称为欧几里德算法。它的理论依据正是前面所述的带余除法。
欧几里德算法的数学表述如下:
Z b a ∈,且0≠b ,重复应用带余除法,我们有:
⎪⎪⎪⎪⎩⎪⎪⎪⎪⎨⎧<<+=<<+=<<+=<<+=<<+=+++----n n n n n n n n n n n n r r r r q r r r r r q r r r r r q r r r r r q b b r r b q a 11111
12233231122121110,0,0,0,||0,
这时,0||21>>>> r r b ,由于小于|b |的正整数只有有限个以及1整除任一整数,所以这过程不能无限制地做下去,必定会出现某个n ,要么1,|1>-n n n r r r ,要么1=n r ,此时余数01=+n r 。
我们容易得到
定理2 ),(b a r n =
这是因为n n n n n r r r r r r r r b b a ======---),(),(),(),(),(112211
另外,由(1)式我们可得:
⎪⎪⎪⎩⎪⎪⎪⎨⎧<<-=<<-=<<-=<<-=---1
12232313121221110,0,
0,||0,n n n n n n r r r q r r r r r q r r r r r q b r b r b q a r 把前面的式子依次代入到后面的除式中,相应地消去1321,,,,-n r r r r ,最后,
n r 可以表示为a 和b 的整系数线性组合,这时的系数即为使ax +by =(a ,b )的系数。
习题
1、什么是计算复杂性、空间复杂性?简述P 问题、NP 问题和NP -完全问题
之间的关系。
2、1. O (ax 7+3x 3+sin(x ))=
2. O (e n +an 10)=
3. O (n !+n 50)=
3、对于整数15和18,问:
(1) 它们是否互素?
(2) 试用欧几里德算法求它们的最大公因子。
4、15mod 281x =-是否有解,为什么?如果有解,请给出两种计算方法。
5、求下列各数的最大公因数:
(45,75), (102,222), (666,1414), (3961,952), (147,64)
并用它们的线性组合表示。
6、试证若a=bq +r , 则
gcd (a , b )=gcd (b , r )
7、试证若(a ,b )=1,a |(bc ), 那么a |c 。
8、若d =gcd (a , b ), 则存在整数p 和q ,使得d=pa+qb
9、求下列问题的解
(1) 7mod 53≡x
(2) 7mod 54≡x
(3) 35mod 1510≡x
(4) 16mod 157≡x
10、证明
n n m o d 0)1(21≡-+++
n n mod 0)1(21333≡-+++ 其中n 是正整数。
11、求下列方程组的解:
2mod 0≡x
3mod 0≡x
5mod 1≡x
7mod 6≡x
12、求下列方程组的解: 11mod 4≡x
17mod 3≡x
2mod 1≡x
3mod 2≡x
5mod 3≡x