二次同余

二次同余

今天来学习二次剩余。

背景

2018SCOI就考了这个。
然后我就被送退役了。
yy就切了然后拿了一本。

怎么判断是否有解

考虑我们知道n、p,要求x: x 2 ≡ n ( M o d   p ) x^2{\equiv}n(Mod\ p) x2n(Mod p)
特判0的情况后:
( 有 解 ) = [ n p − 1 2 ≡ 1 ] (有解)=[n^{\frac{p-1}{2}}{\equiv}1] ()=[n2p11]
如果 n p − 1 2 ≡ 1 ( M o d   p ) n^{\frac{p-1}{2}}{\equiv}1 (Mod\ p) n2p11(Mod p),因为 x 2 ≡ n ( M o d   p ) x^2{\equiv}n(Mod\ p) x2n(Mod p),所以 x p − 1 ≡ 1 ( M o d   p ) x^{p-1}{\equiv}1(Mod \ p) xp11(Mod p)可行
否则可得 x p − 1 ≡ − 1 ( M o d   p ) x^{p-1}{\equiv}-1(Mod \ p) xp11(Mod p)显然不可行。

判断完有没有解该干啥

首先我们知道:对于任何一个符合 x 2 ≡ n ( M o d   p ) x^2{\equiv}n(Mod\ p) x2n(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) x2a2n(Mod p)无解(也就是 ( a 2 − n ) p − 1 2 ≡ − 1 (a^2-n)^{\frac{p-1}{2}}{\equiv}-1 (a2n)2p11),并且钦定一个 w = a 2 − n w=\sqrt{a^2-n} w=a2n ,让它与1构成一个复数域。
这个东西和复数性质相近,但是注意相乘时由虚数部相乘得到的合数部贡献要乘上 a 2 − n a^2-n a2n(因为 w 2 = a 2 − n 2 w^2={\sqrt{a^2-n}}^2 w2=a2n 2)
然后有结论: ( 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 ap1=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 wp1=(w2)2p1=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)(aw)
= a 2 − w 2 =a^2-w^2 =a2w2
= a 2 − ( a 2 − n ) =a^2-(a^2-n) =a2(a2n)(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

注意!!!!

千万不能现用现配平方根!!!!

不然一个是正的一个是负的就完蛋了!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值