Chgtaxihe's blog Chgtaxihe's blog
首页
练习
算法学习
读书笔记
小玩意

Chgtaxihe

首页
练习
算法学习
读书笔记
小玩意
  • 数论

    • 一些小问题
    • 二次剩余学习笔记
      • 若p为奇素数,则恰有$\frac{(p-1)}{2}$个模p的二次剩余,且恰有$\frac{(p-1)}{2}$个模p的非二次剩余
      • $QR \times QR = QR, QR \times NR = NR, NR \times NR = QR$
      • 勒让德符号(legendre symbol)
      • Cipolla
        • 模板
    • 卡特兰数学习笔记
    • 同余最短路学习笔记
    • 康托展开学习笔记
    • 快速傅里叶变换学习笔记
    • 拉格朗日插值学习笔记
    • 拓展欧几里得学习笔记
    • 斐波那契数列学习笔记
    • 斯特林数笔记
    • 本原勾股数组学习笔记
    • 模运算学习笔记
    • 欧拉函数
    • 类欧几里得学习笔记
    • 素性检测与大数分解
    • 素数计数问题
    • 组合数问题
    • 高斯整数学习笔记
  • 动态规划

  • 暴力

  • 图论

  • 数据结构

  • 字符串

  • 几何

  • 博弈论

  • 其他

二次剩余学习笔记

\newcommand\legendre[2]{\left(\frac{#1}{#2}\right)}

# 二次剩余

当存在数XXX使得X2≡nmodpX^2\equiv n\mod pX2≡nmodp成立时,称n是模p意义下的二次剩余(QR)。

特别的,对于p=2p=2p=2,每一个整数都是它的二次剩余;

本文中符号QRQRQR代表二次剩余,NRNRNR代表非二次剩余

下面只考虑ppp为奇素数的情况。

# 若p为奇素数,则恰有(p−1)2\frac{(p-1)}{2}2(p−1)​个模p的二次剩余,且恰有(p−1)2\frac{(p-1)}{2}2(p−1)​个模p的非二次剩余

下面的同余式默认省略modp\mod pmodp符号

设1≤x<p1\le x \lt p1≤x<p,首先证明x2≡(p−x)2x^2\equiv (p-x)^2x2≡(p−x)2

显然(p−x)2≡p2−2px+x2≡x2(p-x)^2\equiv p^2-2px+x^2\equiv x^2(p−x)2≡p2−2px+x2≡x2

这么一来,可知12≡(p−1)2,22≡(p−2)2,⋯1^2\equiv (p-1)^2, 2^2 \equiv (p-2)^2,\cdots12≡(p−1)2,22≡(p−2)2,⋯

接下来只需要证明12,22,⋯,(p−12)21^2,2^2,\cdots, (\frac{p-1}{2})^212,22,⋯,(2p−1​)2两两不相等即可

假设1≤b1,b2≤p−121\le b_1, b_2\le \frac{p-1}{2}1≤b1​,b2​≤2p−1​,且b1≠b2b_1\ne b_2b1​=b2​

若b12≡b22b_1^2\equiv b_2^2b12​≡b22​,则ppp整除b12−b22≡(b1−b2)(b1+b2)b_1^2-b_2^2\equiv (b_1-b_2)(b_1+b_2)b12​−b22​≡(b1​−b2​)(b1​+b2​)

显然b1+b2<pb_1+b_2<pb1​+b2​<p,因此b1+b2b_1+b_2b1​+b2​与ppp互质;

又因为∣b1−b2∣<p\mid b_1-b_2\mid <p∣b1​−b2​∣<p,唯一的可能便是b1=b2b_1=b_2b1​=b2​,与假设相违背

命题得证

# QR×QR=QR,QR×NR=NR,NR×NR=QRQR \times QR = QR, QR \times NR = NR, NR \times NR = QRQR×QR=QR,QR×NR=NR,NR×NR=QR

请自行证明

# 勒让德符号(legendre symbol)

(ap)={1,a在模p意义下是二次剩余−1,a在模p意义下是非二次剩余0,a mod p = 0(\frac{a}{p}) = \begin{cases}1 , &\text{a在模$p$意义下是二次剩余}\\-1, &\text{a在模$p$意义下是非二次剩余}\\0, &\text{a mod p = 0}\end{cases} (pa​)=⎩⎪⎪⎨⎪⎪⎧​1,−1,0,​a在模p意义下是二次剩余a在模p意义下是非二次剩余a mod p = 0​

设ppp为奇素数,则

\legendreap\legendrebp=\legendreabp\legendre{a}{p}\legendre{b}{p}=\legendre{ab}{p} \legendreap\legendrebp=\legendreabp

且有欧拉准则:

ap−12≡\legendreap(1)a^{\frac{p-1}{2}}\equiv \legendre{a}{p}\tag 1 a2p−1​≡\legendreap(1)

式(1)证明略

# Cipolla

算法步骤:

对于x2≡nx^2\equiv nx2≡n,随机找一个aaa使得a2−na^2-na2−n为非二次剩余,定义i2≡a2−n,i≡a2−ni^2\equiv a^2-n,i\equiv \sqrt{a^2-n}i2≡a2−n,i≡a2−n​(类比虚数)

那么(a+i)p+1≡n(a+i)^{p+1}\equiv n(a+i)p+1≡n

证明见参考资料

# 模板

#define ll long long
namespace residue{
    // p 必须是奇素数
    ll square_i = 0, mod = 1;

    struct complex{
        ll real, imag;
        complex operator *(const complex & p){
            return {(real * p.real % mod + square_i * p.imag % mod * imag % mod) % mod,
                    (real * p.imag + imag * p.real) % mod};
        }
    };

    complex qpow(complex a, ll t){
        complex res = {1, 0};
        while(t){
            if(t & 1) res = res * a;
            t >>= 1, a = a * a;
        }
        return res;
    }

    bool is_residue(ll n, ll p){ // 判断n是否是剩余
        ll res = 1, t = (p - 1) / 2;
        while(t){
            if(t & 1) res = res * n % p;
            t >>= 1, n = n * n % p;
        }
        return res == 1;
    }

    pair<ll, ll> get_res(ll n, ll p){
        n %= p, mod = p;
        if(n == 0) return {0, 0}; 
        if(!is_residue(n, p)) return {-1, -1}; // 非二次剩余
        ll a;
        do{
            a = rand() % (p - 1) + 1;
            square_i = (a * a % p - n + p) % p;
        }while(is_residue(square_i, p));
        ll ans1 = qpow({a, 1}, (p + 1) / 2).real, ans2 = p - ans1;
        if(ans1 > ans2) swap(ans1, ans2);
        return {ans1, ans2};
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45

# 参考资料

  • 《数论概论》第4版
  • 《哈代数论》第6版
  • https://www.cnblogs.com/zwfymqz/p/10605181.html
  • https://www.luogu.com.cn/blog/_post/181742
上次更新: 2021/02/24, 03:37:30
一些小问题
卡特兰数学习笔记

← 一些小问题 卡特兰数学习笔记→

最近更新
01
深入理解Java虚拟机
03-04
02
DNS工作原理
02-27
03
改用VuePress啦
02-23
更多文章>
Theme by Vdoing | Copyright © 2019-2021
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式