欧拉定理及其应用(注解版)~~YT.docxVIP

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
欧拉定理及其应用(注解版)~~YT

欧拉定理及其应用?????????????????????????????????????? 欧拉函数phi(m)表示小于等于|m|的自然数中,和m互质的数的个数。phi(m)=mΠ(1-1/p)//《算法导论》第531页?????? p|m证明:若m为一素数p,则phi(m)=p-1。若m为合数,存在p,使m=pd。1、若p整除d,对任意a,(a, d) = 1,//注意a属于[1,d)那么(a + d, d) = 1,(a + d, p) = 1,所以(a + d, m) = 1,所以(a + kd, m) = 1,k = 0, 1, 2, ... , p - 1,所以phi(m) = p phi(d)。//则有任意和d互质的数加上kd继续互质,所以共有p*phi(d)个2、若p不能整除d,那么(p, d) = 1,在小于|m|的自然数里,和d互质的有p phi(d)个,其中phi(d)个是p的倍数,所以phi(m) = (p - 1) phi(d)。//显然,除d、2d、3d……pd能整除外,其余都不能整除由数学归纳法得到结论。欧拉定理:如果(a, m) = 1,那么a ^ phi(m) = 1 (mod m)。//可以参考《算法导论》证明:设R(m) = {r[1], r[2], ... , r[phi(m)]}为和m互质的数的等价类的集合。那么有(ar[i], m) = 1,ar[i] = ar[j]当且仅当i = j。所以aR(m) = {ar[i]} = R(m),a ^ phi(m) Πr[i] = Πar[i] = Πr[i] (mod m),a ^ phi(m) = 1 (mod m)。欧拉定理的一个重要意义就是计算a ^ b mod m的时候,若b是一个很大的数时,可以化成a ^ (b mod phi(m)) mod m来计算,明显地,b mod phi(m)是一个比较小的数。当(a, m)≠1时,设对m分解质因数得到m = Πpi ^ ri,d = (a, m),m = m1 * m2,其中m1 = Πpi ^ri,那么(m1, m2) = 1,(a, m2) = 1,??????? pi|d所以a ^ phi(m2) = 1 (mod m2)。由欧拉函数的计算公式可以得知phi(m2)|phi(m),所以a ^ phi(m) = 1 (mod m2)。对任意i,pi|d,都有phi(m) = log m = ri,所以m1|d ^ phi(m),m1|a ^ phi(m)。由于(m1, m2) = 1,所以存在整数r,0 r m,r = 1 (mod m2),r = 0 (mod m1),有a ^ phi(m) = r (mod m)。显然,a ^ 2phi(m) = 1 (mod m2),a ^ 2phi(m) = 0 (mod m1),所以a ^ 2phi(m) = a ^ phi(m) (mod m)。因此,即使(a, m)≠1,也能很快地得到a ^ b mod m的结果。例题1:TC SRM273 FactorialTower计算a[0]! ^ a[1] ^ a[2]! ^ ... ^ a[n - 1]! mod m//递归得到,/*a[0]^a[1]^a[2]^…^a[n-1]mod m等价于先求出phi(m)令m1=phi(m),再用a[1]^a[2]^…^a[n-1]mod (m1),等价于先求出phi(m1),令m2=phi(m1),再用a[2]^a[3]^…^a[n-1]mod (m2),等价于先求出phi(m2),令m3=phi(m2),……最后就有a[n-1] mod (m[n-1])。。。逆向返回*//*注意,上面我们只是单方面用了递归思想,还要考虑下m1m2m3……所以至多在m-1步之后,m[m-1]=1(至于为什么为1,而不是0,显然哈~~这儿不做详细解释了),所以更高阶的将不需要计算,我只是给出了上界,下面我将修正它**********/根据前面的结论,可以通过递归计算得到结果。每一步里面,计算phi(m)的复杂度为O(sqrt(m)),计算a[i] ^ b mod m复杂度为O(a[i] + log m)//a ^ b mod m==a ^ (b mod phi(m)) mod m由于a[i] m,所以一步的复杂度为O(m)。若m为偶数,则phi(m) = m / 2。若m为奇数,则phi(m)为偶数。且当m含有至少一个奇数的质因子时,phi(m)中2的次数不会少于m中2的次数。//注意这句话,再结合上面给出算法的计算过程:m[i+1]=phi(mi),且有若m为偶数,则phi(m) = m / 2,应用二分的思想,所以只要min{O(logm), n}步就能完成

文档评论(0)

hhuiws1482 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5024214302000003

1亿VIP精品文档

相关文档