收藏 分享(赏)

06数论算法.ppt

上传人:天天快乐 文档编号:1120471 上传时间:2018-06-13 格式:PPT 页数:30 大小:146KB
下载 相关 举报
06数论算法.ppt_第1页
第1页 / 共30页
06数论算法.ppt_第2页
第2页 / 共30页
06数论算法.ppt_第3页
第3页 / 共30页
06数论算法.ppt_第4页
第4页 / 共30页
06数论算法.ppt_第5页
第5页 / 共30页
点击查看更多>>
资源描述

1、第6章 数论算法,6.1 整数的表示,设B1为一正整数,对任一正整数a,在B进制下可唯一地表示为 ,0aim的情形8 do ci ai+carry9 carry ci/B 10 ci ci mod B11 for it+1 to m对mn的情形12 do ci bi+carry13 carry ci/B 14 ci ci mod B15 if carry016 then cicarry17 return c若将a,b的较大位数记为n,不难看出ADD过程的运行时间是(n)。,减法运算,SUB(a, b)计算a-b,假定ab1 for i0 to m2 do ciai-bi3 if ci04 th

2、en cici+B5 ai+1 ai+1-16 for im+1 to n7 do ciai8 if ci09 then cici+B10 ai+1 ai+1-111 消去c的高位012 return c算法中第15的for循环重复m次,而第610行的for循环重复n-m次,故算法的运行时间为(n)。,乘法运算,PRODUCT(a, b)1 for i0 to m2 do carry03 for j0 to n4 do ci+jbiaj+ ci+j +carry5 carryci+j/B6 ci+jci+j mod B7 if carry08then ci+jcarry9 return c若、

3、b都是n+1位B进制数,则过程的运行时间为O(n2)。,带余除法,定理6-1(除法定理)对任意整数a和正整数n,存在唯一的整数q和r使得La = qn + r,0 r b且(an-1a1a0)b。记 ,若bn-1B/2,则商a/b=q必有 -2q 。,算法伪代码描述,DIVISION(a, b) 对n+1位及m+1位正整数a,b计算式(1)中的q和r1 if ab2 then q0, ra3 return q and r4 if a=b5 then q16 r07 return q and r8 if bmB/2计算规格化因子d9 then dB/(bm+1)10 else d111 uda,

4、 vdb, n u的位数-1, mv的位数-1规格化12 r(unun-1un-m+1)13 for jn-m downto 014 do if r 0且d | a,则|d| |a|。若d | a,则我们说a是d的一个倍数。若d不能整除a,我们记为da。注意d | a当且仅当-d | a,由于a的一个约数的相反数也是a的约数,所以,不失一般性,定义约数是非负的。即若d | a 且d 0,我们说d是a的一个约数。,余数和模等价类,如果两个整数a和b除以n的余数相同,我们称a和b关于模n同余,记为ab (mod n)。显然,ab (mod n)当且仅当存在整数k,使得a-b=kn。利用同余关系将整

5、数集合Z进行划分。我们把所有关于模n的余数为r(0 r 1只有平凡约数1和a被称为是一个素数。素数有很多特性并在数论中扮演者核心角色。有无穷多个素数,即由所有素数构成的集合P是无限集合。一个整数a1不是素数则称其为合数。,公约数和最大公约数,若整数d是a的约数且d也是b的约数,则d是a和b的公约数。两个不全为0的整数a和b的最大公约数是a和b的公约数的最大者。记为gcd(a, b)。定理6-3若a和b是任意不全为0的整数,则gcd(a, b)是a和b的线性组合的集合ax + by : x, yZ中正的元素的最小者。,互质,两个整数a,b称为是互质的若它们只有公约数1,即若gcd(a, b) =

6、 1。定理6-7对任意的整数a,b和p,若有gcd(a, p) = 1且gcd(b, p) = 1,则gcd(ab, p) = 1。定理6-8对任意非0整数a和b,若d=gcd(a, b),则gcd(a/d, b/d)=1。推论6-9若acbc (mod n),gcd(c, n)=d。则ab (mod n/d)。,唯一分解,定理6-11(唯一分解)合数a可以写成唯一的乘积形式,其中pi是素数,p1 p2 b 1且EUCLID(a, b)执行了k 1次递归调用,则a Fk+2 且b Fk+1。定理6-14(Lam定理):对任一整数k 1,若a b 1且b 0,n 0。定理6-15对未知数为x的方

7、程ax b (mod n)有解当且仅当gcd(a, n) | b。定理6-16设d = gcd(a, n),并假定有整数x和y使得d = ax + ny(例如,通过EXTENDED-GCD的计算)。若d | b,则方程ax b (mod n)有一个作为它的解的值,满足x0 = x(b/d) mod n。定理6-17假定方程ax b (mod n)是可解的(即d | b,其中d = gcd(a, n))且x0是该方程的一个解。则此方程关于模n恰有d个不同的解xi = x0 + i(n/d),i = 0, 1, ., d 1。,算法伪代码描述,MODULAR-LINEAR-EQUATION-SOL

8、VER(a, b, n)1 (d, x, y) EXTENDED-EUCLID(a, n)2 S3 if d | b4 then x0 x(b/d) mod n5 for i 0 to d 16 do SS(x0 + i(n/d) mod n 7 return SMODULAR-LINEAR-EQUATION-SOLVER执行O(lg n + gcd(a, n)次算术运算,这是因为EXTENDED-EUCLID执行O(lg n)次算术运算,第45行的for循环的每次迭代执行常数次算术运算。,重复B次方计算幂,计算ab mod n,其中a、b是非负整数n是正整数。将b表示为B-进制形式,可有效地

9、用重复B次方解决此问题。设b=bkBk+bk-1Bk-1+b1B+b0,则,算法伪代码描述,MODULAR-EXPONENTIATION(a, b, n)1 d 12 设(bkbk-1.b1b0)为b的B进制表达式3 for i k downto 04 do d dB mod n5 if bi 06 then d 7 return d如果输入a、b和n是二进制位数,则所需的算术运算次数为O()而所有的位操作次数为O(3)。,6.5 素数检测,定理 6-21(Euler定理)对任一整数n1,对所有的aZ*na(n)1 (mod n)。其中,(n)是第6.4.1节定义的Eule的phi函数。推论6

10、-22(Fermat定理)若p是素数,则对任意的aZ*pap-1 1 (mod p)。,利用Fermart定理的伪素数判定过程,PSEUDOPRIME(n)1 if MODULAR-EXPONENTIATION(2, n - 1, n)1 (mod n)2 then return PRIME 我们希望3 else return COMPOSITE 明确地,Miller-Rabin的随机素数检测,Miller-Rabin的算法如下检测素数。输入n2是一个被测试的奇数,s是要随机选取的用于测试的基值个数。算法利用随机数发生器RANDOM(1, n-1)返回一个满足1 a n1的整数a。代码还利用一

11、个辅助过程WITNESS,使得WITNESS(a, n)为TRUE当且仅当a是合数n的一个“证词”,即,若a可能作为n是合数的一个证明。,提供合数证据,WITNESS(a, n)1 设n - 1 = 2tu, 其中t 1 且u 是奇数2 x0 MODULAR-EXPONENTIATION(a, u, n)3 for i1 to t4 do xix2i-1 mod n5 if xi = 1且xi-11且xi-1n 16 then return TRUE7 if xt18 then return TRUE9 return FALSE,素数检测,MILLER-RABIN(n, s)1 for j 1

12、 to s2 do a RANDOM(1, n - 1)3 if WITNESS(a, n)4 then return COMPOSITE 按定义5 return PRIME 几乎肯定,Miller-Rabin素数检测的错误率,定理6-27若n是一个奇合数,则n是合数的证词个数至少为(n - 1)/2。定理6-28对任意的奇整数n 2和正整数s,MILLER-RABIN(n, s)出错的概率至多为2-s。于是,选择s=50,就几乎能满足任意可想象的应用。,6.6 整数分解,TRY-DIVISION(n)1 for d2 to 2 do if d|n3 then return d过程TRY-DI

13、VISION可以保证在 次试商后得到n的一个因数。设n的位数为,则的运行时间为(2 )=(222/2)=O(2/2)。,Pollard的探索法,POLLARD-RHO(n)1 i 12 x1 RANDOM(0, n - 1)3 S4 y x15 k 26 repeat7 SS xi 8 d gcd(|y - xi|, n),9 if d 1 and d n10 then return d11 i i + 112 if i = k13 then y xi14 k 2k15 xi (x2i-1-1) mod n16 until xiS17 return n,POLLARD-RHO的以( )次期望的算术运算求得n的小素数因数p。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报