zoukankan      html  css  js  c++  java
  • 费马小定理的证明:

    证明:假如p是质数,且(a,p)=1,那么 a^(p-1) ≡1(mod p)
    一:准备知识:
    引理1.剩余系定理2 若a,b,c为任意3个整数,m为正整数,且(m,c)=1,则当ac≡bc(modm)时,有a≡b(modm)
    证明:ac≡bc(mod m)可得ac–bc≡0(mod m)可得(a-b)c≡0(mod m)因为(m,c)=1即m,c互质,c可以约去,a–b≡0(mod m)可得a≡b(mod m)
    引理2.剩余系定理5 若m为整数且m>1,a[1],a[2],a[3],a[4],…a[m]为m个整数,若在这m个数中任取2个整数对m不同余,则这m个整数对m构成完全剩余系。
    证明:构造m的完全剩余系(0,1,2,…m-1),所有的整数必然这些整数中的1个对模m同余。取r[1]=0,r[2]=1,r[3]=2,r[4]=3,…r=i-1,1<i<=m。令(1):a[1]≡r[1](mod m),a[2]≡r[2](mod m),a≡r(mod m)(顺序可以不同),
    因为只有在这种情况下才能保证集合{a1,a2,a3,a4,…am}中的任意2个数不同余,否则必然有2个数同余。由式(1)自然得到集合{a1,a2,a3,a4,…am}对m构成完全剩余系。
    引理3.剩余系定理7 设m是一个整数,且m>1,b是一个整数且(m,b)=1。如果a1,a2,a3,a4,…am是模m的一个完全剩余系,则ba[1],ba[2],ba[3],ba[4],…ba[m]也构成模m的一个完全剩余系。
    证明:若存在2个整数ba和ba[j]同余即ba≡ba[j](mod m),根据引理2则有a≡a[j](mod m)。根据完全剩余系的定义和引理4(完全剩余系中任意2个数之间不同余,易证明)可知这是不可能的,因此不存在2个整数ba和ba[j]同余。
    由引理5可知ba[1],ba[2],ba[3],ba[4],…ba[m]构成模m的一个完全剩余系。
    引理4.同余定理 6 如果a,b,c,d是四个整数,且a≡b(mod m),c≡d(mod m),则有ac≡bd(mod m)
    证明:由题设得ac≡bc(mod m),bc≡bd(mod m),由模运算的传递性可得ac≡bc(mod m)

    二、证明过程:
    构造素数p的完全剩余系P={1,2,3,4…(p-1)},因为(a,p)=1,由引理3可得A={a,2a,3a,4a,…(p-1)a}也是p的一个完全剩余系。令W=1*2*3*4…*(p-1),显然W≡W(mod p)。令Y=a*2a*3a*4a*…(p-1)a,因为{a,2a,3a,4a,…(p-1)a}是p的完全剩余系,由引理2以及引理4可得a*2a*3a*…(p-1)a≡1*2*3*…(p-1)(mod p)即W*a^(p-1)≡W(mod p)。易知(W,p)=1,由引理1可知a^(p-1)≡1(mod p)

    欧拉定理(又称费马-欧拉定理):已知a和n为正整数,并且a和p互素,则a^phi(n) ≡ 1(mod n)。

    证明:

      设集合Z = {X1, X2, X3, .... , Xphi(n)},其中Xi (i = 1, 2, .. phi(n))表示第i个不大于n与n互质的数。

      考虑集合S = {a*X1(mod n), a*X2(mod n), ... ,a*Xphi(n) (mod n) },则集合Z = S;

      1) 因为a和n互质,Xi和n也互质,所以a*Xi 也与n互质。所以对任意一个Xi,a*Xi (mod n)一定是Z里面的元素;

      2)对于任意Xi, Xj, 如果Xi != Xj,则a*Xi(mod n) != a*Xj(mod n);

      所以S = Z;

      那么 (a*X1*a*X2*...*a*Xphi(n))(mod n) ---------------------------------------------------- (1)

      = (a*X1(mod n)* a*X2(mod n)* ... *a*Xphi(n) (mod n)) (mod n)

      = (X1* X2* X3* .... * Xphi(n)) (mod n) ------------------------------------------------------ (2)

      式(1)整理得 [a^phi(x) * (X1* X2* X3* .... * Xphi(n))] (mod n)

      与(2)式一同消去 (X1* X2* X3* .... * Xphi(n)),即得 a^phi(n) ≡ 1 (mod n);


    应用:求逆元

    逆元 :(b/a) (mod n) = (b * x) (mod n)。 x表示a的逆元。并且 a*x ≡ 1 (mod n )  注意:只有当a与n互质的时候才存在逆元

    因为a^phi(n) ≡ 1 (mod n),所以x可以表示为a^(phi(n) - 1)。如果n为质数,phi(n)=n-1

     

    /*扩展欧几里得的应用: 模P乘法逆元 对于整数a、p,如果存在整数b,满足ab mod p =1,则说,b是a的模p乘法逆元。 定理:a存在模p的乘法逆元的充要条件是gcd(a,p) = 1

    注意,逆元也可以这样理解,求一个最小的正整数x(逆元),使a乘以x对m的取余等于1对m的取余, 所以m=1 时,逆元为1

    证明: 首先证明充分性 如果gcd(a,p) = 1,根据欧拉定理,aφ(p) ≡ 1 mod p,因此 显然aφ(p)-1 mod p是a的模p乘法逆元。

    再证明必要性 假设存在a模p的乘法逆元为b ab ≡ 1 mod p 则ab = kp +1 ,所以1 = ab - kp 因为gcd(a,p) = d 所以d | 1 所以d只能为1  扩展欧几里德算法对于最大公约数的计算和普通欧几里德算法是一致的。计算乘法逆元则显得很难明白。下面是证明:

    首先重复拙作整除中的一个论断:

    如果gcd(a,b)=d,则存在m,n,使得d = ma + nb,称呼这种关系为a、b组合整数d,m,n称为组合系数。当d=1时,有 ma + nb = 1 ,此时可以看出m是a模b的乘法逆元,n是b模a的乘法逆元。 (按照上面算出来的m,n可能为负数,最后要把它转化为正数)。完整程序如下:*/

     

    一般情况下,ax+by=1;得 x为a mod  b 的逆元,y为 b mod a的逆元

    贴一个用多种方法证明的论文。

    主要看这个地址写的:http://www.docin.com/p-489651861.html

  • 相关阅读:
    高级特性(4)- 数据库编程
    UVA Jin Ge Jin Qu hao 12563
    UVA 116 Unidirectional TSP
    HDU 2224 The shortest path
    poj 2677 Tour
    【算法学习】双调欧几里得旅行商问题(动态规划)
    南洋理工大学 ACM 在线评测系统 矩形嵌套
    UVA The Tower of Babylon
    uva A Spy in the Metro(洛谷 P2583 地铁间谍)
    洛谷 P1095 守望者的逃离
  • 原文地址:https://www.cnblogs.com/zhangmingcheng/p/4240672.html
Copyright © 2011-2022 走看看