下载此文档

繁荣空间里.doc


文档分类:论文 | 页数:约8页 举报非法文档有奖
1/8
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/8 下载此文档
文档列表 文档介绍
欧拉函数phi(m)表示小于等于|m|的自然数中,和m互质的数的个数。
phi(m)=mΠ(1-1/p)
       p|m
证明:若m为一素数p,则phi(m)=p-1。
若m为合数,存在p,使m=pd。
若p整除d,对任意a,(a, d) = 1,那么(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)。
若p不能整除d,那么(p, d) = 1,在小于|m|的自然数里,和d互质的有p phi(d)个,
其中phi(d)个是p的倍数,所以phi(m) = (p - 1) phi(d)。
由数学归纳法得到结论。
欧拉定理:如果(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
根据前面的结论,可以通过递归计算得到结果。
每一步里面,计算phi(m)的复杂度为O(sqrt(m)),计算a[i] ^ b mod m复杂度为O(a[i] + log m)
由于a[i] < m,所以一步的复杂度为O(m)。
若m为偶数,则phi(m) <= m

繁荣空间里 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数8
  • 收藏数0 收藏
  • 顶次数0
  • 上传人顾生等等
  • 文件大小0 KB
  • 时间2015-12-24
最近更新