Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 软件时空 > 软件相关 > 欧拉定理
【标  题】:欧拉定理
【关键字】:
【来  源】:http://www.cublog.cn/u/8780/showart.php?id=225130

欧拉定理

Your Ad Here

欧拉定理

对于互质的整数a和n,有aφ(n) ≡ 1 mod n

 

模p运算

给定一个正整数p,任意一个整数n,一定存在等式

          n = kp + r

其中k、r是整数,且 0 ≤ r < p,k为n除以p的商,r为n除以p的余数。

对于正整数p和整数a,b,定义如下运算:

  • 取模运算:a mod p 表示a除以p的余数。
  • 模p加法:(a + b) mod p ,其结果是a+b算术和除以p的余数,也就是说,(a+b) = kp +r,则 (a+b) mod p = r。
  • 模p减法:(a-b) mod p ,其结果是a-b算术差除以p的余数。
  • 模p乘法:(a × b) mod p,其结果是 a × b算术乘法除以p的余数。

 

规律 公式
结合率 ((a+b) mod p + c)mod p = (a + (b+c) mod p) mod p
((a*b) mod p * c)mod p = (a * (b*c) mod p) mod p
交换率 (a + b) mod p = (b+a) mod p
(a × b) mod p = (b × a) mod p
分配率 ((a +b)mod p × c) mod p = ((a × c) mod p + (b × c) mod p) mod p

简单的证明其中第一个公式:

 ((a+b) mod p + c) mod p = (a + (b+c) mod p) mod p
 假设
 a = k1 p + r1
 b = k2 p + r2
 c = k3 p + r3
 
 a+b = (k1 + k2) p + (r1 + r2)
 如果(r1 + r2) >= p ,则
    (a+b) mod p = (r1 + r2) -p
 否则
    (a+b) mod p = (r1 + r2)
 再和c进行模p和运算,得到
     结果为  r1 +  r2 +  r3的算术和除以p的余数。
 对右侧进行计算可以得到同样的结果,得证。

模p相等

如果两个数a、b满足a mod p = b mod p,则称他们模p相等,记做

 a ≡ b mod p
可以证明,此时a、b满足 a = kp + b,其中k是某个整数。

对于模p相等和模p乘法来说,有一个和四则运算中迥然不同得规则。在四则运算中,如果c是一个非0整数,则

       ac = bc 可以得出  a =b

但是在模p运算中,这种关系不存在,例如:

 (3 x 3) mod 9 = 0
 (6 x 3) mod 9 = 0
 但是
 3 mod 9 = 3
 6 mod 9 =6

定理(消去律):如果gcd(c,p) = 1 ,则 ac ≡ bc mod p 可以推出 a ≡ b mod p

 证明:
 因为ac ≡ bc mod p
 所以ac = bc + kp,也就是c(a-b) = kp
 因为c和p没有除1以外的公因子,因此上式要成立必须满足下面两个条件中的一个
 1) c能整除k
 2) a = b
 如果2不成立,则c|kp
 因为c和p没有公因子,因此显然c|k,所以k = ck'
 因此c(a-b)kp可以表示为c(a-b) =ck'p
 因此a-b = k'p,得出a ≡ b mod p
 如果a = b,则a ≡ b mod p 显然成立
 得证

欧拉函数

欧拉函数是数论中很重要的一个函数,欧拉函数是指:对于一个正整数n,小于n且和n互质的正整数的个数,记做:φ(n),其中φ(1)被定义为1。

定义小于n且和n互质的数构成的集合为Zn。

显然,对于素数p,φ(p)= p -1.对于两个素数p、q,他们的乘积n = pq 满足φ(n) =(p-1)(q-1)

        证明:对于质数p,q,满足φ(n) =(p-1)(q-1)
        考虑n的所有余数的集合 {0,1,2,....,pq -1}
        而不和n互质的集合由下面三个集合的并构成:
        1) 能够被p整除的集合{p,2p,3p,....,(q-1)p} 共计q-1个
        2) 能够被q整除的集合{q,2q,3q,....,(p-1)q} 共计p-1个
        3) {0}
       很显然,1、2集合中没有共同的元素,因此Zn中元素个数 = pq - (p-1 + q- 1 + 1) = (p-1)(q-1)

欧拉定理

对于互质的整数a和n,有aφ(n) ≡ 1 mod n

        证明:
        首先证明下面这个命题:
        对于集合Zn={x1,x2,...,xφ(n)}(小于n且和n互质的数构成的集合为Zn),考虑集合
        S = {ax1 mod n,ax2mod n,...,axφ(n)mod n}
        则S = Zn
        1) 由于a,n互质,xi也与n互质,则axi也 一定于p互质,因此
        任意xi,axi mod n 必然是Zn的一个元素
        2) 对于Zn中两个元素xi和xj,如果xi ≠ xj
        则axi mod n ≠ axi mod n,这个由a、p互质和消去律可以得出。
        所以,很明显,S=Zn
        
       那么
        (ax1 × ax2×...×axφ(n))mod n
         = (ax1 mod n × ax2mod n × ... × axφ(n)mod n)mod n
         = (x1 × x2 × ... × xφ(n))mod n
         考虑上面等式左边和右边
         左边等于(aφ(n) × (x1 × x2 × ... × xφ(n))mod n) mod n
         右边等于x1 × x2 × ... × xφ(n))mod n
         而x1 × x2 × ... × xφ(n))mod n和p互质
         根据消去律,可以从等式两边约去,就得到:
         aφ(n) ≡ 1 mod n
推论:对于互质的数a、n,满足aφ(n)+1 ≡ a mod n

费马定理

a是不能被质数p整除的正整数,则有ap-1 ≡ 1 mod p

证明这个定理非常简单,由于φ(p) = p-1,代入欧拉定理即可证明。

同样有推论:对于不能被质数p整除的正整数a,有ap ≡ a mod p

用Visual C++制作微秒级精度定时器 (Vb也适用):【上一篇】
终于有个高效率的排列组合算法:【下一篇】
【相关文章】
没有相关文章
【随机文章】
  • VC++下借助DBGird控件显示数据库记录
  • VLAN的特点
  • 用SQL Server为Web浏览器提供图像(一)(转)
  • 使用 C++ Builder 创建应用程序
  • 浮躁-你不应是Java程序员的风格
  • 万兆以太网技术全接触(1)
  • sed 命令解释(翻译)
  • FreeBSD全能服务器安装手册之基础篇
  • 将Fedora Core的gcj替换为sun的java的脚本[转]
  • RedHet9下挂载U盘
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.