二次剩余学习笔记

前言:这是给自己看的博客


题意:解方程 \(x^2 \equiv n\pmod p\),满足 \(p\) 是奇质数。

Part 1

首先判定这个方程是否有解。

如果一个数 \(n\) 满足有任意一个数 \(x\) 使得 \(x^2 \equiv n\pmod p\)(即方程有解),那么定义这个数 \(n\)\(\operatorname{mod} p\) 意义下的二次剩余,否则定义这个数 \(n\)\(\operatorname{mod} p\) 意义下的非二次剩余。

由于 \(p\) 是奇质数,根据费马小定理有

\[n^{p-1} \equiv 1 \pmod p\\ n^{2\times \frac{p-1}{2}} \equiv 1 \pmod p\\ (n^{\frac{p-1}{2}})^2 \equiv 1 \pmod p\\ n^{\frac{p-1}{2}} \equiv \pm 1 \pmod p \]

\(n\)\(\operatorname{mod} p\) 意义下的二次剩余,则有:

\[n^{\frac{p-1}{2}} \equiv (x^2)^{\frac{p-1}{2}} \equiv x^{p-1} \equiv 1 \]

所以当 \(n\)\(\operatorname{mod} p\) 意义下的二次剩余时,则有 \(n^{\frac{p-1}{2}} \equiv 1\),否则 \(n^{\frac{p-1}{2}} \equiv -1\)

于是我们就知道如何快速地判定一个数是否有解。

好像这个东西有个高深莫测的名字叫欧拉判别准则

Part 2

那么如何快速地得知这个数的解呢?

如果有两个解的话,那么两个解肯定是相反数,原因如下:

设这两个解为 \(x_0,x_1\)

\(x_0^2 \equiv n,x_1^2 \equiv n \Rightarrow x_0^2\equiv x_1^2 \Rightarrow x_0^2-x_1^2 \equiv 0 \Rightarrow (x_0+x_1)(x_0-x_1) \equiv 0 \pmod p\)

\[\begin{cases} x_0 \not = x_1 \Rightarrow x_0-x_1\not = 0\\ p是素数\Rightarrow p \not | \ x_0+x_1 \\ (x_0+x_1)(x_0-x_1) \equiv 0 \pmod p \end{cases} \Rightarrow x_0+x_1=0\]

而且由此也可以知道有 \(\frac{p-1}{2}\) 个数字对应着不同的二次剩余,剩下的 \(\frac{p-1}{2}\) 个数字对应着不同的非二次剩余

接下来就介绍奇奇妙妙的 \(\operatorname{Cipolla}\) 算法了,接下来的内容都抄袭着 \(\sf \color{red}{Kewth}\) 神仙的博客。

构造一个数字 \(a\) 使得 \(a^2-n\) 是一个非二次剩余(这个 \(a\) 可以直接随机出来,显然随机一次的概率有 \(50 \%\) 左右)

再构造一个解 \(i\) 使得 \(i^2 \equiv a^2-n\)

但是因为 \(a^2-n\) 是非二次剩余,故无解。于是我们将 \(i\) 扩展到复数域上,实部和虚部都在 \(\operatorname{mod} p\) 的意义下。

那么 \((a+i)^{p+1}\equiv n \pmod p\),考虑证明。

引理 \(1\)\(i^p = -i\)

\(i^p = i \times i^{p-1} = i \times (i^{2})^{\frac{p-1}{2}}=i \times (a^2-n)^{\frac{p-1}{2}}=i \times (-1)=-i\)

引理 \(2\)\((A+B)^p \equiv A^p+B^p \pmod p\)

二项式定理易证。

根据上述两个引理,有:

\[(a+i)^{p+1} \\ (a+i)(a+i)^p \\ (a+i)(a^p+i^p) \\ (a+i)(a-i) \\ a^2-i^2 \]

于是就有 \((a+i)^{p+1} \equiv a^2-i^2\),又因为 \(n \equiv a^2-i^2\),所以 \((a+i)^{p+1} \equiv n\)

所以方程的解之一就是 \((a+i)^{\frac{p+1}{2}}\)

可以用反证法来证明这个解没有虚部。

posted on 2020-06-30 11:28  exzang  阅读(163)  评论(0编辑  收藏  举报

导航