Loading

二次剩余学习笔记

本来不想学这东西,但是发现学了就能水两个多项式板子,那还是学吧。

1 二次剩余是什么

\[x^2\equiv n\pmod p \]

其中 \(p\)奇质数

你发现这玩意很像模意义的开根,事实上就是。

如果方程存在一个解,\(n\) 就是模 \(p\) 意义下的二次剩余,反之是非二次剩余。

2 解的数量

假设存在多个解。

\[x_0^2\equiv x_1^2\pmod p \]

\[x_0^2-x_1^2\equiv 0\pmod p \]

\[(x_0-x_1)(x_0+x_1)\equiv 0\pmod p \]

\[\because x_0\not\equiv x_1\pmod p \]

\[\therefore x_0+x_1\equiv0\pmod p \]

因此我们证明了如果存在解,必定存在恰好两个解。

3 判断是否是二次剩余

假设 \(0<n<p\)

\[n^{p-1}\equiv 1\pmod p \]

\[(n^\frac{p-1}{2})^2\equiv1\pmod p \]

因此 \(n^\frac{p-1}{2}\equiv\pm1\pmod p\)

结论:\(1\) 的时候是二次剩余,取 \(-1\) 的时候不是。

证明先鸽着。

4 求解二次剩余

我们使用 Cipolla 算法。

首先,我们随便找一个数 \(a\),让 \(a\) 不是模 \(p\) 意义下的二次剩余。

定义 \(\omega\) 为一个虚数,使得 \(\omega^2=a^2-n\)

那么一个解就是 \((a+\omega)^\frac{p+1}{2}\)

posted @ 2021-01-22 09:52  dXqwq  阅读(127)  评论(0编辑  收藏  举报