二次剩余学习笔记

本来不想学这东西,但是发现学了就能水两个多项式板子,那还是学吧。

1 二次剩余是什么

x2n(modp)

其中 p奇质数

你发现这玩意很像模意义的开根,事实上就是。

如果方程存在一个解,n 就是模 p 意义下的二次剩余,反之是非二次剩余。

2 解的数量

假设存在多个解。

x02x12(modp)

x02x120(modp)

(x0x1)(x0+x1)0(modp)

x0x1(modp)

x0+x10(modp)

因此我们证明了如果存在解,必定存在恰好两个解。

3 判断是否是二次剩余

假设 0<n<p

np11(modp)

(np12)21(modp)

因此 np12±1(modp)

结论:1 的时候是二次剩余,取 1 的时候不是。

证明先鸽着。

4 求解二次剩余

我们使用 Cipolla 算法。

首先,我们随便找一个数 a,让 a 不是模 p 意义下的二次剩余。

定义 ω 为一个虚数,使得 ω2=a2n

那么一个解就是 (a+ω)p+12

posted @   dXqwq  阅读(145)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示
主题色彩