笔记-二次剩余

二次剩余

  前置芝士:原根和阶的口胡笔记

  传送门:P5491 模板 二次剩余

题目大意

二次剩余俗称模意义开根,给出 n n n p p p 解方程:

x 2 ≡ n ( m o d p ) x^2 \equiv n \pmod p x2n(modp)

我们保证 p p p 是一个奇素数

定义

  对于 n n n p p p 来说如果 ∃ x \exist x x 使得 x 2 ≡ n ( m o d p ) x^2 \equiv n \pmod p x2n(modp) 就称 n n n 是 模 p p p 的二次剩余。

解的数量

  我们考虑二次剩余 n n n x 2 ≡ n x^2 \equiv n x2n 有多少解。我们假设有很多组解,其中两个不同的解 x 0 x_0 x0 x 1 x_1 x1。我们就有 x 0 2 ≡ x 1 2 x_0^2 \equiv x_1^2 x02x12,我们移一下项就能得到:

( x 0 − x 1 ) ( x 0 + x 1 ) ≡ 0 (x_0 - x_1)(x_0 + x_1) \equiv 0 (x0x1)(x0+x1)0

  又因为 p p p 是奇素数,而且有 x 1 ≠ x 0 x_1 \neq x_0 x1=x0,所以只有可能是 x 0 + x 1 ≡ 0 x_0 + x_1 \equiv 0 x0+x10,也就是说不相等的两个解一定为相反数。而且又因为 p p p 是奇素数所以两个互为相反数的数不可能相等(因为奇偶性的问题)。

  推到这里我们还能知道,任意一对相反数都对应一个二次剩余,而且这些二次剩余两两不同,也就是说二次剩余的数量恰好为 p − 1 2 \frac{p - 1}{2} 2p1,其他的就都是非二次剩余了。

判断 n n n 是否为二次剩余

  怎样快速判断一个 n n n 是不是一个二次剩余呢?我们知道费马小定理:

n p − 1 ≡ 1 ( m o d p ) n^{p - 1} \equiv 1\pmod p np11(modp)

  因为 p p p 是奇素数,所以:

n 2 p − 1 2 − 1 ≡ 0 n^{2\frac{p - 1}{2}} - 1 \equiv 0 n22p110

  也就是说 n p − 1 2 n^{\frac{p - 1}{2}} n2p1 就是 1 1 1 开根的结果,又因为 1 1 1 开根只有可能是 1 1 1 或者 − 1 -1 1,所以 n p − 1 2 n^{\frac{p - 1}{2}} n2p1 只可能等于 1 1 1 − 1 -1 1

  现在我们假设 n n n 是二次剩余,那么就有 n p − 1 2 ≡ ( x 2 ) p − 1 2 ≡ x p − 1 n^{\frac{p - 1}{2}} \equiv (x^2)^{\frac{p - 1}{2}} \equiv x^{p - 1} n2p1(x2)2p1xp1,然后现在我们分情况讨论。

  1. n p − 1 2 ≡ 1 n^\frac{p - 1}{2} \equiv 1 n2p11 的时候,将 n n n 写成 n = g k n = g^k n=gk,其中 g g g 是模 p p p 的原根,那么就是 g k p − 1 2 ≡ 1 g^{k\frac{p - 1}{2}} \equiv 1 gk2p11,又因为 g g g 是原根,所以有 g φ ( p ) ≡ 1 g^{\varphi(p)} \equiv 1 gφ(p)1,所以就是 φ ( p ) ∣ k p − 1 2 \varphi(p) | k\frac{p - 1}{2} φ(p)k2p1,也就是 p − 1 ∣ k p − 1 2 p - 1 | k \frac{p - 1}{2} p1k2p1。那么 k k k 就一定是一个偶数。我们令 x = g k 2 x = g^{\frac k2} x=g2k,就是 n n n 开根之后的结果,说明 n n n 是二次剩余。所以我们发现 n p − 1 2 ≡ 1 n^{\frac{p - 1}{2}} \equiv 1 n2p11 n n n 是二次剩余是等价的。
  2. 因为 n p − 1 2 n^{\frac{p - 1}{2}} n2p1 不是 1 1 1 就是 − 1 -1 1,所以 n p − 1 2 ≡ − 1 n^{\frac{p - 1}{2}} \equiv - 1 n2p11 n n n 是非二次剩余等价。

Cipolla 定理

  对于解方程 x 2 ≡ n ( m o d p ) x^2 \equiv n \pmod p x2n(modp),我们随机化找到一个 a a a 满足 a 2 − n a^2 - n a2n 是非二次剩余,因为二次剩余的个数差不多是 p 2 \frac{p}{2} 2p,所以我们期望 2 2 2 次就能找到这样的 a a a

  接下来定义 i 2 ≡ a 2 − n i ^2 \equiv a^2 - n i2a2n。这时候有人就要问了,不是说 a 2 − n a^2 - n a2n 是非二次剩余吗,怎么来的 i 2 i^2 i2 呢。我们类比实数推广到复数的思想,直接定义这样的一个 i i i。然后就可以将所有数写成 A + B i A + Bi A+Bi,其中 A , B A, B A,B 都是模 p p p 意义之下的数,这就类似于实部和虚部。现在我们要解方程之前还要证明几个引理:

  1. i p ≡ − i i^p \equiv -i ipi
  2. ( A + B ) p ≡ A p + B p (A + B)^p \equiv A^p + B^p (A+B)pAp+Bp
  3. ( a + i ) p + 1 ≡ n (a +i)^{p + 1} \equiv n (a+i)p+1n

  第一个很好证,证明过程如下:

i p ≡ i ( i 2 ) p − 1 2 ≡ i ( a 2 − n ) p − 1 2 ≡ − i \begin{aligned} i^p \equiv i(i^2)^{\frac{p - 1}{2}} \equiv i(a^2 - n)^{\frac{p - 1}{2}} \equiv -i \end{aligned} ipi(i2)2p1i(a2n)2p1i

  第二个考虑多项式定理展开,因为 p p p 是质数,所以除了 C p 0 C_p^0 Cp0 C p p C_p^p Cpp 之外的所有组合数分子上的阶乘都没法消去,再模个 p p p 那就都是 0 0 0 了,所以剩下来的就是 C p 0 A 0 B p + C p p A p B 0 = A p + B p C_p^0A^0B^p + C_p^pA^pB^0 = A^p + B^p Cp0A0Bp+CppApB0=Ap+Bp

  最后一个:

( a + i ) p + 1 ≡ ( a p + i p ) ( a + i ) ≡ ( a p − i ) ( a + i ) \begin{aligned} (a + i)^{p +1} \equiv (a^p + i^p)(a +i) \equiv (a^p - i)(a + i) \end{aligned} (a+i)p+1(ap+ip)(a+i)(api)(a+i)

  又由费马小定理得到: a p − 1 ≡ 1 ( m o d p ) a^{p - 1} \equiv 1 \pmod p ap11(modp),所以 a p ≡ p a^p \equiv p app,代入上式:

( a + i ) p + 1 ≡ ( a − i ) ( a + i ) ≡ a 2 − i 2 ≡ n (a + i)^{p + 1} \equiv (a - i)(a + i) \equiv a^2 - i^2 \equiv n (a+i)p+1(ai)(a+i)a2i2n

  现在三个引理证完了,那么方程的解也就很显然了,我们要解的数满足 x 2 ≡ n x^2 \equiv n x2n,我们又有: ( a + i ) p + 1 ≡ n (a+i)^{p+1}\equiv n (a+i)p+1n,所以 x = ( a + i ) p + 1 = ( a + i ) p + 1 2 x = \sqrt{(a+i)^{p+1}} = (a+i)^{\frac{p+1}{2}} x=(a+i)p+1 =(a+i)2p+1,另一个解就是他的相反数。

  现在还有一个问题,我们现在解出来的东西只有在 “虚部” 为 0 0 0 的时候才是一个正常的数,如果不为零的话我们上面的推导就没什么意义了。但幸运的是,我们可以证明 ( a + i ) p + 1 2 (a + i)^{\frac{p + 1}{2}} (a+i)2p+1 的 “虚部” 一定为 0 0 0

  假设 ∃ ( A + B i ) 2 ≡ n ∧ B ≠ 0 \exist (A + Bi)^2 \equiv n \land B \neq 0 (A+Bi)2nB=0,现在把这个式子展开:

A 2 + B 2 i 2 + 2 A B i ≡ n A^2 + B^2i^2 + 2ABi \equiv n A2+B2i2+2ABin

  也就是说( i 2 ≡ a 2 − n i^2 \equiv a^2 - n i2a2n):

A 2 + B 2 ( a 2 − n ) − n ≡ − 2 A B i A^2 + B^2(a^2 - n) - n \equiv -2ABi A2+B2(a2n)n2ABi

  我们发现左边的式子虚部为 0 0 0,那么右边的式子虚部一定也为 0 0 0,也就是说 A B ≡ 0 AB \equiv 0 AB0,又因为 B ≠ 0 B \neq 0 B=0,那么就有 A ≡ 0 A \equiv 0 A0,也就是说 ( B i ) 2 ≡ n (Bi)^2 \equiv n (Bi)2n。在写的好看一点:

i 2 ≡ n B − 2 i^2 \equiv nB^{-2} i2nB2

  因为 B 2 B^2 B2 是一个二次剩余(应该很显然吧),那么 n B − 2 nB^{-2} nB2 显然也是一个二次剩余,那么这就与 i 2 i^2 i2 不是二次剩余矛盾了,所以 ∄ ( A + B i ) 2 ≡ n ∧ B ≠ 0 \nexists (A + Bi)^2 \equiv n \land B \neq 0 (A+Bi)2nB=0,也就是说虚部一定为 0 0 0

  现在我们来总结一下,对于方程 x 2 ≡ n ( m o d p ) x^2 \equiv n \pmod p x2n(modp),其中 p p p 是奇素数,来说我们有:

  1. n p − 1 2 ≡ 1 n^{\frac{p - 1}{2}} \equiv 1 n2p11 n n n 是一个二次剩余等价。
  2. n p − 1 2 ≡ − 1 n^{\frac{p - 1}{2}} \equiv -1 n2p11 n n n 不是一个二次剩余等价。
  3. 解方程时算随机化找到一个 i 2 ≡ a 2 − n i^2 \equiv a^2 - n i2a2n 是一个非二次剩余。(找到这个东西的期望次数是 2 2 2)。
  4. 然后答案就是 ( a + i ) p + 1 2 (a + i)^{\frac{p + 1}{2}} (a+i)2p+1 和它的相反数。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值