# 二次剩余判定器（Legendre / Jacobi 符号）

计算 Jacobi 符号 (a/n)（n 为奇数，可达 10¹⁸；素数时即 Legendre 符号）：素数模下 a^((n−1)/2) ≡ 1 判定为二次剩余，并用 Tonelli–Shanks（或 p ≡ 3 (mod 4) 时的直接公式）给出平方根 ±√a；符号为 −1 则 a 一定不是二次剩余。合数模下 Jacobi 符号只是必要条件：−1 证明非剩余，+1 不确定（n ≤ 10⁵ 时自动暴力枚举求真相）。经典例：10 是 mod 13 的二次剩余，根为 ±6。

> 标准页面: https://elysiatools.com/zh/tools/quadratic-residue-checker

- **分类:** Math & Numbers

- **关键词:** 二次剩余, 勒让德符号, 雅可比符号, tonelli-shanks, 模平方根, 欧拉判别法, 米勒-拉宾, 数论

## 概述

二次剩余判定器用于计算奇数模下的 Jacobi 符号与 Legendre 符号，快速判定同余方程 x² ≡ a (mod n) 是否有解。在素数模下，工具结合欧拉判别法与 Tonelli–Shanks 算法直接求解模平方根；在合数模下支持符号性质检验与小模数枚举验证。

## 输入项

- **数值 a** (text): The value being tested for squareness; reduced mod n first (up to 10⁵¹²).
- **模数 n（奇数）** (text): Odd modulus, 3 ≤ n ≤ 10¹⁸ (primality tested with deterministic Miller–Rabin).
- **当 n 为素数时，求解 x² ≡ a (mod n)** (checkbox): Run Tonelli–Shanks and print the square roots when they exist.

## 适用场景

- 在数论或密码学学习与算法实现中，需要快速判定 a 是否为模 n 的二次剩余时。
- 已知素数模 n 且二次同余方程有解，需要使用 Tonelli–Shanks 算法快速求出模平方根 ±√a 时。
- 分析合数模下的 Jacobi 符号值，并对较小合数（n ≤ 10⁵）排查是否存在“伪剩余”或无解情况时。

## 工作原理

- 首先使用确定性 Miller–Rabin 算法检测模数 n 的素性，并将输入值 a 规约至模 n 范围内。
- 计算 Jacobi 符号 (a/n)；若 n 为素数，则符号等价于 Legendre 符号并应用欧拉判别法判定剩余性质。
- 当判定为素数模的二次剩余且勾选求解选项时，调用 Tonelli–Shanks 算法（或针对 p ≡ 3 (mod 4) 的直接公式）输出两个模平方根并完成验算；若为较小合数模，则辅助进行枚举验证。

## 使用案例

- 公钥密码学算法（如 Rabin 密码系统、零知识证明协议）开发与模平方根验证。
- 数论课程作业与竞赛编程中二次剩余判定及快速开方计算。
- 验证二次互反律、Jacobi 符号性质及合数模下的伪剩余案例。

## 常见问题

### Legendre 符号与 Jacobi 符号有什么区别？

Legendre 符号仅适用于奇素数模，结果完全决定是否为二次剩余；Jacobi 符号推广到了任意正奇数模，结果为 -1 可确认非剩余，但结果为 +1 时在合数模下不保证一定有解。

### 模数 n 有哪些输入限制？

模数 n 必须为奇数，支持范围在 3 到 10¹⁸ 之间。

### 若模数为合数且 Jacobi 符号为 +1，工具如何处理？

合数模下 Jacobi 符号为 +1 属于未定状态；当 n ≤ 10⁵ 时，工具会自动通过穷举枚举确认是否存在真实的模平方根。

### 输入数值 a 的大小有限制吗？

数值 a 支持大整数输入（最高可达 10⁵¹²），计算前会先自动取模规约至 [0, n-1] 区间。

### 什么是 Tonelli–Shanks 算法？

它是一种用于求解奇素数模二次同余方程 x² ≡ a (mod p) 模平方根的高效多项式时间算法。

## 相关工具

- [血气酸碱失衡判读（AG / ΔAG 联合分析）](https://elysiatools.com/zh/tools/blood-gas-anion-gap): 对动脉血气进行系统性酸碱失衡判读，结合阴离子间隙（AG）和 delta-delta（ΔAG/ΔHCO₃⁻）检测混合性酸碱紊乱。步骤：①pH 分层（酸血症/正常/碱血症）；②原发紊乱识别（代酸/代碱/呼酸/呼碱）；③代偿检查（Winter 公式 PaCO₂=1.5×HCO₃+8±2、急/慢性呼酸碱的 HCO₃ 变化规则）；④AG = Na−Cl−HCO₃（±白蛋白校正）；⑤Delta ratio：<0.4 正常 AG 代酸，0.4–0.8 混合，1–2 纯高 AG 代酸，>2 高 AG 代酸+代碱。不同于已有的 anion-gap-calculator（仅算血清 AG），本工具做完整血气判读。来源 Emmett 2016、Kraut CJASN 2007、Rastegar 2007、LITFL、MDCalc、Adrogué NEJM 1998。不构成医疗建议。
- [原根查找器](https://elysiatools.com/zh/tools/primitive-root-finder): 查找模 n 的原根：先判断 n 是否属于 {2, 4, p^k, 2p^k}（乘法群为循环群），再给出最小原根及其判别证书（对每个整除 φ(n) 的素数 q 都有 g^(φ/q) ≠ 1）、原根总数 φ(φ(n))，可列出最多 50 个原根，或验证指定候选 g 的阶是否等于 φ(n)。支持 n ≤ 10¹²。
- [肺炎严重程度对比判读（CURB-65 / PSI / SMART-COP）](https://elysiatools.com/zh/tools/curb-65-vs-pneumonia-severity): 一次输入同时计算三项肺炎评分并对比判读：CURB-65（0-5，门急诊/住院分流）、PSI/PORT（Class I-V，最精确的死亡风险分层）、SMART-COP（0-10，预测是否需 ICU 呼吸/升压支持）。三项各有侧重：CURB-65 简便快捷；PSI 更精确但更复杂；SMART-COP 识别需 ICU 的患者。输出各评分总分+分级+判读，并分析三者一致性（是否都指向门急诊/住院/ICU）。当三者结论不一致时，倾向于更保守的处置。来源 Lim 2003、Fine 1997、Charles 2008。不构成医疗建议。
- [DNA 浓度计算器（A260 吸光度法）](https://elysiatools.com/zh/tools/dna-concentration-a260): 用 A260 紫外吸光度法测定 DNA 浓度：浓度 (µg/mL) = A260 × 稀释倍数 × 转换系数 ÷ 光程 (cm)。经验系数：双链 DNA 1 OD = 50 µg/mL，单链 DNA 1 OD = 33 µg/mL（RNA 为 40，见配套 RNA 工具）。1 µg/mL = 1 ng/µL；输入洗脱体积即可得总量 µg。附带 0.1–1.5 线性范围判读：低于 0.1 噪声为主，高于 1.5 探测器可能饱和，需稀释重测。纯度请用 OD260/280 工具判断。来源：Marmur & Doty 1961/1962、Sambrook & Russell、Thermo Fisher NanoDrop 技术资料。仅供教学与实验规划，请以校准仪器为准。
- [文件类型检测器（魔数）](https://elysiatools.com/zh/tools/file-type-detect): 通过文件的魔数字节签名识别真实类型，而非扩展名。直接读取上传文件，覆盖约 70 种类型。
- [OD260/230 纯度比计算器（盐/有机溶剂污染）](https://elysiatools.com/zh/tools/od260-230-ratio): 用 OD260/230 比值判断核酸样品的盐与有机溶剂污染——这是 260/280 检不出污染时的重要补充：纯核酸该比值为 2.0–2.2，低于 2.0 提示胍（TRIzol/柱试剂盒）、酚、碳水化合物、EDTA、高盐或 β-巯基乙醇残留；2.2–2.3 通常为可接受的缓冲液效应；高于 2.3 提示水/缓冲液假象需复测。可选填 A280 同时给出 OD260/280 交叉核对（DNA ~1.8、RNA ~2.0），一次读数覆盖两个纯度维度。读数低于 ~0.05 时比值不可靠。来源：Thermo Fisher T042、Sambrook & Russell、Manchester 1995。仅供教学与实验规划。
- [核酸纯度比计算器（OD260/280）](https://elysiatools.com/zh/tools/od260-280-ratio): 用 OD260/280 比值判断核酸样品纯度：核酸碱基在 260 nm 吸收最强，蛋白质芳香族氨基酸与酚类在 280 nm 附近吸收，因此 A260/A280 可诊断蛋白/酚污染。预期值：纯 DNA ≈ 1.8（可接受 1.7–2.0），纯 RNA ≈ 2.0（可接受 1.8–2.2）；DNA < 1.7 或 RNA < 1.8 提示蛋白/酚/胍污染，DNA > 2.0 提示 RNA 污染，RNA > 2.2 提示低离子强度缓冲液等测量假象。可选填 A230 计算次级比值 A260/A230（纯品 2.0–2.2，偏低提示胍/酚/碳水化合物/盐残留）。读数低于 ~0.05 时比值不可靠。来源：Manchester 1995、Sambrook & Russell、Thermo Fisher T042。仅供教学与实验规划。
- [完全数判定器](https://elysiatools.com/zh/tools/perfect-number-checker): 判定 n 是否为完全数（等于其真因子之和，即 σ(n) = 2n）。对 n（≤ 10¹²）做试除因子分解，由素数幂的 σ 公式求出 σ(n) 与真因子和，分类为亏数/完全数/盈数，给出充裕指数 σ(n)/n；对完全数还原欧几里得–欧拉形式 2^(p−1)·(2^p − 1)，并列出 10¹² 以内的全部七个偶完全数。真因子个数 ≤ 200 时可列出真因子表。

## 示例

- [Web Python 图像处理示例](https://elysiatools.com/zh/samples/web-image-processing-python): Web Python 图像处理示例，使用 PIL/Pillow 包括读取、保存、缩放和格式转换
- [Android Java 图像处理示例](https://elysiatools.com/zh/samples/android-image-processing-java): Android Java 图像处理示例，包括图像读取保存、缩放和格式转换
- [Android Kotlin 图像处理示例](https://elysiatools.com/zh/samples/android-image-processing-kotlin): Android Kotlin 图像处理示例，包括图像读取保存、缩放和格式转换
- [Web Rust 图像处理示例](https://elysiatools.com/zh/samples/web-image-processing-rust): Web Rust 图像处理示例，包括图像读取保存、缩放和格式转换
