定义
求解 x2≡c(modp)方程组。
若有解则 c 为模 p 意义下的二次剩余。
欧拉判别
若 cp−12=1则是二次剩余,若等于 -1 则不是二次剩余。
- cp−12=1或−1 ,考虑把 c 平方。
- 若x2=c,那么cp−12=xp−1=−1,和费马小定理矛盾。
个数
模 p 意义下的二次剩余恰好有 p−12 个。
c2=(p−c)2,于是出现一个解一定有一个对称的解。
总共有 p−12个不同平方,于是二次剩余与非剩余各有 p−12个。
Cipolla 求解 二次剩余的方程
首先找到一个 a 使得 a2−n为非二次剩余。大概随机个几次就能出(期望2次)。
然后将数域拓展至虚数,使得 i2≡a2−n。
那么 (a+i)p+1≡n。
- 引理1:ip≡−i
ip≡i(i2)p−12≡i(a2−n)p−12≡−i
- 引理2:(A+B)p≡Ap+Bp
二项式定理展开后,只有 C0p和 Cpp存在。
于是:
(a+i)p+1≡(ap+ip)(a+i)≡(a−i)(a+i)≡a2−i2≡n
于是(a+i)p+12是其中一个解,相反数是另一个解。
为什么虚部一定为 0 呢?
若存在 (A+Bi)2≡n ,且 B≠0 ,那么 A2+B2(a2−n)−n≡−2ABi,左边没有 i,于是右边 AB为0.
总结一下:找到 a 使得 a2−n为非二次剩余,然后将数域拓展至虚数,使得 i2≡a2−n。而后(a+i)p+12是其中一个解,相反数是另一个解。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具