二次剩余和二次同余方程

概念

二次同余方程 x 2 ≡ n ( m o d    p ) x^2\equiv n(mod~~p) x2n(mod  p),其中 n , p n,p n,p已知且互质且 p p p为奇质数,求 x x x

这样的二次同余方程若有解,则称 n n n是模 p p p的二次剩余,同时 x x x为该二次同余方程的解

实际上二次同余方程也在解决 x ≡ n ( m o d    p ) \sqrt{x} \equiv n(mod~~p) x n(mod  p),意为如果该二次同余方程有解,那么 n n n可以在模 p p p意义下开根号

二次剩余

定理一

在模 p p p的缩系 B = { 1 , 2 , . . . , p − 1 } B=\{1,2,...,p-1\} B={1,2,...,p1},有 p − 1 2 \frac{p-1}{2} 2p1个模 p p p的二次剩余和 p − 1 2 \frac{p-1}{2} 2p1个非二次剩余,且二次剩余的集合为 A = { < 1 2 > p , < 2 2 > p , . . . < ( p − 1 2 ) 2 > p } A=\{<1^2>_p,<2^2>_p,...<(\frac{p-1}{2})^2>_p\} A={<12>p,<22>p,...<(2p1)2>p},其中 < x > p = x % p <x>_p=x\%p <x>p=x%p

  • 推论一: A A A中的元素两两不同

    证明:利用反证法:假设 < i 2 > p = < j 2 > p <i^2>_p = <j^2>_p <i2>p=<j2>p,又因为 < i 2 > p ≡ i 2 ( m o d    p ) , < j 2 > p ≡ j 2 ( m o d    p ) <i^2>_p \equiv i^2(mod~~p),<j^2>_p \equiv j^2(mod~~p) <i2>pi2(mod  p),<j2>pj2(mod  p),所以 i 2 ≡ j 2 ( m o d    p ) i^2 \equiv j^2(mod~~p) i2j2(mod  p),变形得到 ( i + j ) ( i − j ) ≡ 0 ( m o d    p ) (i+j)(i-j) \equiv 0(mod~~p) (i+j)(ij)0(mod  p)。根据同余的性质那么有 p ∣ ( i + j ) ( i − j ) p|(i+j)(i-j) p(i+j)(ij),又因为 i , j ≤ p − 1 2 i,j \leq \frac{p-1}{2} i,j2p1,所以 i + j ≤ p − 1 2 , i − j ≤ p − 1 2 i+j \leq \frac{p-1}{2},i-j \leq \frac{p-1}{2} i+j2p1,ij2p1。显然小于 p p p的数都和 p p p互质,故 p ∣ ( i + j ) ( i − j ) p|(i+j)(i-j) p(i+j)(ij)不成立,即原假设不成立

  • 推论二:设 n n n是模 p p p的二次剩余,二次同余方程 x 2 ≡ p x^2 \equiv p x2p的一个解为 x 0 x_0 x0,那么 p − x 0 p-x_0 px0是另外一个解

    证明:显然 ( p − x ) 2 = p 2 − 2 p x + x 2 ≡ n ( m o d    p ) (p-x)^2=p^2-2px+x^2 \equiv n(mod~~p) (px)2=p22px+x2n(mod  p)成立

勒让德符号

在这里插入图片描述

不难发现勒让德符号是积性函数

定理二

n p − 1 2 ≡ ± 1 ( m o d    p ) n^{\frac{p-1}{2}} \equiv \pm1(mod~~p) n2p1±1(mod  p)

证明:

由费马小定理, p p p为素数, n n n为正整数,且 n , p n,p n,p互质。 则有 n p − 1 ≡ 1 ( m o d    p ) n^{p−1} \equiv 1 (mod~~p) np11(mod  p)。变形得 n p − 1 − 1 ≡ ( n p − 1 2 + 1 ) ( n p − 1 2 − 1 ) ≡ 0 ( m o d    p ) n^{p-1}-1 \equiv (n^{\frac{p-1}{2}}+1)(n^{\frac{p-1}{2}}-1) \equiv 0(mod~~p) np11(n2p1+1)(n2p11)0(mod  p),那么 n p − 1 2 ≡ ( m o d    p ) n^{\frac{p-1}{2}} \equiv (mod~~p) n2p1(mod  p)

  • 推论一:若 n p − 1 2 ≡ 1 n^{\frac{p-1}{2}} \equiv 1 n2p11,则 ( n p ) = 1 (\frac{n}{p})=1 (pn)=1。即方程有解当且仅当 n p − 1 2 ≡ 1 ( m o d    p ) n^{\frac{p-1}{2}} \equiv 1(mod~~p) n2p11(mod  p)(实际上二者互为充要条件)

    证明:设同余方程 x p − 1 2 ≡ 1 ( m o d    p ) x^{\frac{p-1}{2}} \equiv 1(mod~~p) x2p11(mod  p)的解的个数为 y y y,由拉格朗日定理得出 y ≤ p − 1 2 y\leq \frac{p-1}{2} y2p1。假设 < i 2 > p ∈ A <i^2>_p \in A <i2>pA,那么:

    ( < i 2 > p ) p − 1 2 ≡ ( i 2 ) p − 1 2 = i p − 1 ≡ 1 (<i^2>_p)^{\frac{p-1}{2}} \equiv (i^2)^{\frac{p-1}{2}}=i^{p-1} \equiv 1 (<i2>p)2p1(i2)2p1=ip11。可以得知二次剩余集合 A A A中的所有元素均满足上述同余方程,那么 ∀ 1 ≤ x ≤ p − 1 2 \forall 1 \leq x \leq \frac{p-1}{2} 1x2p1,有 < x 2 > p ≡ n <x^2>_p \equiv n <x2>pn,最后得出 x 2 ≡ n x^2 \equiv n x2n

  • 推论二:欧拉判别准则: n p − 1 2 ≡ ( n p ) n^{\frac{p-1}{2}} \equiv (\frac{n}{p}) n2p1(pn)

    证明:由定理二和推论一不难得出

二次同余方程

定理三(Cipolla定理)

a a a满足 ω = a 2 − n ω=a^2-n ω=a2n不是模 p p p的二次剩余,即 x 2 ≡ ω ( m o d    p ) x^2\equivω(mod~~p) x2ω(mod  p)无解,那么 x ≡ ( a + ω ) p + 1 2 x\equiv (a+\sqrt{ω})^{\frac{p+1}{2}} x(a+ω )2p+1是二次剩余方程 x 2 ≡ n ( m o d    p ) x^2\equiv n(mod~~p) x2n(mod  p)的解

证明:

由二项式定理和 C p i ≡ 0 ( m o d    p ) C_p^i \equiv 0(mod~~p) Cpi0(mod  p),得 ( a + w ) p = a p + w p − 1 2 w (a+\sqrt{w})^p=a^p+w^{\frac{p-1}{2}}\sqrt{w} (a+w )p=ap+w2p1w

再由费马小定理和 w w w是模 p p p的非二次剩余,得 a p + w p − 1 2 w = a − w a^p+w^{\frac{p-1}{2}}\sqrt{w}=a-\sqrt{w} ap+w2p1w =aw ,然后

( a + w ) p + 1 ≡ ( a + w ) p ( a + w ) ≡ ( a − w ) ( a + w ) ≡ a 2 − w ≡ n ( m o d    p ) (a+\sqrt{w})^{p+1} \equiv (a+\sqrt{w})^p(a+\sqrt{w}) \equiv (a-\sqrt{w})(a+\sqrt{w}) \equiv a^2-w \equiv n(mod~~p) (a+w )p+1(a+w )p(a+w )(aw )(a+w )a2wn(mod  p)

[ ( a + ω ) p + 1 2 ] 2 ≡ n [(a+\sqrt{ω})^{\frac{p+1}{2}}]^2 \equiv n [(a+ω )2p+1]2n,因此 ( a + ω ) p + 1 2 ≡ n (a+\sqrt{ω})^{\frac{p+1}{2}} \equiv n (a+ω )2p+1n

扩域

实际求 ( a + a 2 − n ) p + 1 2 (a+\sqrt{a^2-n})^{\frac{p+1}{2}} (a+a2n )2p+1时,由于 w = a 2 − n w=a^{2}-n w=a2n为模 p p p的非二次剩余,勒让德符号为 − 1 -1 1

故可将与复数域联系,视为复数域中的 i i i,进行复数域 a + i a+i a+i的快速幂的运算,实部单算,虚部单算,称其为扩域,只是这里 w = a 2 − n w=a^{2}-n w=a2n,而非 − 1 -1 1。由拉格朗日定理知,最终 ( a + a 2 − n ) p + 1 2 (a+\sqrt{a^2-n})^{\frac{p+1}{2}} (a+a2n )2p+1虚部为 0 0 0

算法

算法实现时对 a a a的选择随机,因为大约有一半的数是模 p p p的二次非剩余。函数 s o l v e ( n , p ) solve(n,p) solve(n,p)若不为 − 1 -1 1代表有解, p − s o l v e ( n , p ) p-solve(n,p) psolve(n,p)可以得到第二个解(有可能相同)

//二次域
struct T {
    ll p, d;

    T(ll x, ll y) {
        p = x, d = y;
    }
};

ll w;

ll qkp(ll x, ll n, ll p) {
    ll ans = 1;
    x %= p;
    while (n) {
        if (n & 1) ans = ans * x % p;
        x = x * x % p;
        n >>= 1;
    }
    return ans;
}

//二次域乘法
T mul(T a, T b, ll p) {
    T ans(0,0);
    ans.p = (a.p * b.p % p + a.d * b.d % p * w % p) % p;
    ans.d = (a.p * b.d % p + a.d * b.p % p) % p;
    return ans;
}

//扩域慢速乘
T slow_mul(T x, ll n, ll p) {
    T ans(1, 0);
    while (n) {
        if (n & 1) ans = mul(ans, x, p);
        x = mul(x, x, p);
        n >>= 1;
    }
    return ans;
}

//勒让德符号
ll Legendre(ll a, ll p) {
    return qkp(a, (p - 1) >> 1, p);
}

ll getMod(ll a, ll p) {
    a %= p;
    if (a < 0) a += p;
    return a;
}

ll solve(ll n, ll p) {
    if (p == 2) return 1;
    if (Legendre(n, p) + 1 == p) return -1;
    ll a = -1, t;
    while (1) {  //期望为两次
        a = rand() % p;
        t = a * a - n;
        w = getMod(t, p);
        if (Legendre(w, p) + 1 == p) break;
    }
    T temp(a, 1);
    T ans = slow_mul(temp, (p + 1) >> 1, p);
    return ans.p;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值