二次同余
今天来学习二次剩余。
背景
2018SCOI就考了这个。
然后我就被送退役了。
yy就切了然后拿了一本。
怎么判断是否有解
考虑我们知道n、p,要求x:
x
2
≡
n
(
M
o
d
p
)
x^2{\equiv}n(Mod\ p)
x2≡n(Mod p)
特判0的情况后:
(
有
解
)
=
[
n
p
−
1
2
≡
1
]
(有解)=[n^{\frac{p-1}{2}}{\equiv}1]
(有解)=[n2p−1≡1]
如果
n
p
−
1
2
≡
1
(
M
o
d
p
)
n^{\frac{p-1}{2}}{\equiv}1 (Mod\ p)
n2p−1≡1(Mod p),因为
x
2
≡
n
(
M
o
d
p
)
x^2{\equiv}n(Mod\ p)
x2≡n(Mod p),所以
x
p
−
1
≡
1
(
M
o
d
p
)
x^{p-1}{\equiv}1(Mod \ p)
xp−1≡1(Mod p)可行
否则可得
x
p
−
1
≡
−
1
(
M
o
d
p
)
x^{p-1}{\equiv}-1(Mod \ p)
xp−1≡−1(Mod p)显然不可行。
判断完有没有解该干啥
首先我们知道:对于任何一个符合
x
2
≡
n
(
M
o
d
p
)
x^2{\equiv}n(Mod\ p)
x2≡n(Mod p)的n,有+x、-x两解,那么有解无解的各占1/2。
然后我们随机生成一个数a,使得
x
2
≡
a
2
−
n
(
M
o
d
p
)
x^2{\equiv}a^2-n(Mod\ p)
x2≡a2−n(Mod p)无解(也就是
(
a
2
−
n
)
p
−
1
2
≡
−
1
(a^2-n)^{\frac{p-1}{2}}{\equiv}-1
(a2−n)2p−1≡−1),并且钦定一个
w
=
a
2
−
n
w=\sqrt{a^2-n}
w=a2−n,让它与1构成一个复数域。
这个东西和复数性质相近,但是注意相乘时由虚数部相乘得到的合数部贡献要乘上
a
2
−
n
a^2-n
a2−n(因为
w
2
=
a
2
−
n
2
w^2={\sqrt{a^2-n}}^2
w2=a2−n2)
然后有结论:
(
a
+
w
)
p
+
1
2
(a+w)^{\frac{p+1}{2}}
(a+w)2p+1即为所求的x.
考虑这个东西的平方就是
(
a
+
w
)
p
+
1
(a+w)^{p+1}
(a+w)p+1
需要注意到
(
a
+
w
)
p
=
a
p
+
w
p
(a+w)^{p}=a^p+w^p
(a+w)p=ap+wp
由二项式定理得除了这两项以外全部都在组合数中含有一个p的因子,最后膜出来肯定是0.
又因为
a
p
−
1
=
1
a^{p-1}=1
ap−1=1所以
a
p
=
a
a^p=a
ap=a
同理
w
p
−
1
=
(
w
2
)
p
−
1
2
=
−
1
w^{p-1}=(w^2)^{\frac{p-1}{2}}=-1
wp−1=(w2)2p−1=−1
所以
w
p
=
−
w
w^p=-w
wp=−w
则
(
a
+
w
)
p
+
1
=
(
a
+
w
)
(
a
p
+
w
p
)
(a+w)^{{p+1}}=(a+w)(a^p+w^p)
(a+w)p+1=(a+w)(ap+wp)
又
=
(
a
+
w
)
(
a
−
w
)
=(a+w)(a-w)
=(a+w)(a−w)
=
a
2
−
w
2
=a^2-w^2
=a2−w2
=
a
2
−
(
a
2
−
n
)
=a^2-(a^2-n)
=a2−(a2−n)(flag回收)
=
n
=n
=n
所以
(
(
a
+
w
)
p
+
1
2
)
2
=
n
((a+w)^{\frac{p+1}{2}})^{2}=n
((a+w)2p+1)2=n
至于为啥这个东西虚部为0?
结论别问。问就两行泪。
就酱。
upd