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