zoukankan      html  css  js  c++  java
  • 数论-二次剩余、欧拉判别准则、高斯引理

    定义:∀ n,m ,(n,m)=1,m≥2,若n是模m的二次剩余《==》x**2 ≡ n (mod m)有解

    例:

    若n=2,m=3,x**2 ≡ 2 (mod 3)无解,则2是模3的二次非剩余

    若n=2,m=7,x**2 ≡ 2 (mod 7)在x=3时成立,有解,故2是模7的二次剩余

    Th1:在模p(奇素数)的缩系{1,2,3,...,p-1}中,有(p-1)/2个二次剩余和(p-1)/2个二次非剩余,且其中二次剩余为A:{<1>,<2**2>,...,<((p-1)/2)**2>}

    证明:

    (A中元素两两不同)

    假设 ∃i,j i≠j ,1≤i≤(p-1)/2有

    <i**2> ≡ <j**2>

    故<i**2> ≡ i**2 (mod p)

    <j**2> ≡ j**2 (mod p)

    ∴i**2 ≡ j**2 (mod p)

    ∴p|(i**2-j**2)即p | (i+j)*(i-j)

    ∵2<i+j<p-1

    ∴p|i-j,故p≤|i-j|

    ∵|i-j|<(p-1)/2

    ∴假设所得结果与事实不成立,故A中元素两两不同

    (A中每个元素是模p的二次剩余)

    ∀ <i**2> ∈A ,<i**2> ≡ i**2 (mod A)

    ∴ ∃x=i,有x**2≡ <i**2> (mod p)

    故A中的每个元素是模p的二次剩余

    (n∈{1,2,...,p-1}(模p的缩系)是模p的二次剩余,则n∈A)

    ∃ x,有x**2 ≡ n (mod p)

    ∴(p-x)**2 ≡ n (mod p)

    若x≥(p-1)/2+1,(p-x)≥(p-1)/2+1,则p≥p+1,但p<p+1,故p-x和x中有一个≤(p-1)/2,一个≥(p-1)/2+1

    ∴n ≡ x**2 (mod p) (或者n ≡ (p-x)**2 (mod p))

    ∵x≤(p-1)/2(或p-x≤(p-1)/2)

    故n∈A,即A中每个元素是模p的二次剩余,得证

    Th2:(欧拉判别准则

    ---------------------------------------------

    引入勒让德符号:(n/p),其中

    ①(n/p)=1  --> n是p的二次剩余

    ②(n/p)≠1  --> n是p的二次非剩余

    --------------------------------------------

    ①若(n/p)=1,则n**((p-1)/2) ≡ 1 (mod p)

    ②若(n/p)=-1,则n**((p-1)/2) ≡ -1 (mod p)

    证明:

    ((n/p)=1 => n**((p-1)/2) ≡ 1 (mod p))

    ∵(n/p)=1

    故∃ x,有 x**2 ≡ n (mod p)

    ∵(x,p)=1,故x**(p-1) ≡ 1 (mod p)

    故(x**2)**((p-1)/2) ≡ n**(p-1)/2 (mod p)

    即n**((p-1)/2) ≡ 1 (mod p)

    ( n**((p-1)/2) ≡ 1 (mod p) => (n/p)=1)

    ∵n**((p-1)/2) ≡ 1 (mod p),且1 ≠ 0 (mod p)

    根据拉格朗日定理,可知对于同余式,解数≤(p-1)/2

    又∵对于集合A={<1>,<2**2>,...,<((p-1)/2)**2>}

    取i∈A,则有(<i**2>)**(p-1)/2 ≡ (i**2)**(p-1)/2 ≡ i**(p-1)  ≡ 1 (mod p)

    ∴A中元素为同余式n**((p-1)/2) ≡ 1 (mod p)的解

    又∵A中元素恰为(p-1)/2个∴A中元素就是同余式n**((p-1)/2) ≡ 1 (mod p)的解,也就是说n的取值在集合A中

    ∴(n/p)=1

    若(n/p)=-1,则(n/p)≠1

    ∴n**(p-1)/2 ≠ 1 (mod p)

    ∵(n,p)=1 ∴n**(p-1)  ≡ 1 (mod p)

    ∴(n**(p-1)/2)**2  ≡ 1(mod p)

    ∴((n**(p-1)/2)**2)-1 ≡ 0 (mod p)

    ∴p | (n**(p-1)/2)**2-1 即p | ((n**(p-1)/2)+1)*((n**(p-1)/2)-1)

    ∵n**(p-1)/2 ≠ 1 (mod p) ∴ p | (n**(p-1)/2)+1 即 (n**(p-1)/2) ≡ -1 (mod p)

    得证,综上所述,n**(p-1)/2  ≡ (n/p) (mod p)

    推论:若p 不整除于 m*n,则((m*n)/p)=(m/p)*(n/p)

    证明:

    (m/p)=m**(p-1)/2 (mod p)

    (n/p)=n**(p-1)/2 (mod p)

    故(m/p)*(n/p)=m**(p-1)/2 * n**(p-1)/2  (mod p)

                         = (m*n)**((p-1)/2) (mod p)=((m*n)/p) (mod p),得证

    高斯引理:

    若(p,n)=1,<1*n><2*n>,...,<(p-1)/2*n>中有m个数>p/2,则(n/p)=(-1)**m

    证明:设集合A={<1*n>,<2*n>,...,<(p-1)/2*n>}={a1,a2,...,al,b1,b2,...,bm},其中1≤ai<p/2, bj>p/2,l+m=p-1,A∈{1,2,...,p-1}

    则p-bj≠ ai (mod p)

    (

    证明p-bj≠ ai (mod p):

    p/2<bj<p-1<p

    故0<bj<p/2,即1≤p-bj<p/2

    若p-bj ≡ ai (mod p),则ai+bj≡ 0 (mod p)

    ∴∃ x,y,有<x*n>+<y*n> ≡ 0 (mod p)

    即<n*(x+y)> ≡ 0 (mod p)

    ∵x,y∈[1,p-1/2]

    ∴x+y∈[2,p-1]

    ∴(<x+y>,p)=1

    ∵(n,p)=1,故<n*(x+y)> ≠ 0 (mod p)

    与<n*(x+y)> ≡ 0 (mod p),故不存在这样的x,y使得p-bj ≡ ai (mod p)成立

    ∴p-bj≠ ai (mod p)

    )

    ∴{a1,a2,...,al,p-b1,p-b2,...,p-bk}={1,2,...,(p-1)/2}(模p的二次剩余集合)

    ∴∏ai*∏(p-bj)=((p-1)/2)!

    ∵ai,bj∈{<1*n><2*n>,...,<(p-1)/2*n>},故

    ∏ai*∏(p-bj) = [1*2*...*((p-1)/2)]*[(-1)**(m)]*[n**(p-1)/2] ≡ ((p-1)/2)! (mod p)

    即 [(-1)**(m)]*[n**(p-1)/2]  ≡ 1 (mod p)

    ∵[n**(p-1)/2] ≡ (n/p) (mod p)

    ∴ [(-1)**(m)]*[n**(p-1)/2] =(n/p)*(-1)**(m) ≡ 1 (mod p)

    ∴(n/p)≡(-1)**(m) (mod p)得证

  • 相关阅读:
    阿里前端测试题--关于ES6中Promise函数的理解与应用
    elementUI之switch应用的坑
    vue函数同步执行遇到的问题
    阻止事件冒泡,阻止默认事件,event.stopPropagation()和event.preventDefault(),return false的区别
    关于Echarts的原生js获取DOM元素与动态加载DOM元素的冲突问题
    Linux 18.04 非root 安装re2c和ninja
    《Deep Learning of Graph Matching》论文阅读
    读书笔记《程序员的数学:概率统计》
    为什么要找特征向量?
    c++ 初始化
  • 原文地址:https://www.cnblogs.com/jane315/p/13811587.html
Copyright © 2011-2022 走看看