# 模运算计算器（加减乘 / 逆元 / 快速幂）

在模 m 下做加、减、乘、逆元与快速幂运算，全部使用 BigInt 精确计算（数值可达 10¹⁸）。加、减、乘给出逐步约简过程并输出 [0, m−1] 上的规范代表；逆元用扩展欧几里得算法求 a⁻¹ mod m，gcd(a, m) ≠ 1 时明确报告不存在；快速幂展示平方-乘法表中指数二进制分解的每个数位。经典例：17⁵ mod 13 = 10；5⁻¹ mod 18 = 11。

> 标准页面: https://elysiatools.com/zh/tools/modulo-arithmetic-converter

- **分类:** Math & Numbers

- **关键词:** 模运算, 取模, 同余, 模逆元, 快速幂, 平方乘法, 扩展欧几里得, 数论, 余数

## 概述

模运算计算器支持在给定模数 m 下进行精确的加法、减法、乘法、模逆元以及快速幂运算。工具基于 BigInt 构建，支持高达 10¹⁸ 的大数运算，不仅提供最终的规范余数（[0, m−1] 区间），还会完整呈现扩展欧几里得算法的贝祖等式过程以及快速幂的二进制平方-乘法拆解步骤。

## 输入项

- **操作** (select)
- **数值 a** (text): First operand (the base in power mode, the value being inverted in inverse mode).
- **数值 b** (text): Second operand — the exponent in power mode; unused in inverse mode.
- **模数 m** (text): Modulus, m ≥ 2. Results are reduced to the canonical range \[0, m−1\].

## 适用场景

- 学习密码学或初等数论时，需要验证 RSA、Diffie-Hellman 等算法中的模幂与模逆元计算。
- 解决算法竞赛中的同余方程与组合数学问题，快速核对大数取模和除法求逆元的结果。
- 手动推导扩展欧几里得算法或平方-乘法算法时，需要对照详细的中间步骤与位分解。

## 工作原理

- 选择所需的操作类型（加法、减法、乘法、模逆元或快速幂），并输入底数 a、指数/第二操作数 b 以及模数 m（m ≥ 2）。
- 针对基本加减乘操作，工具逐步计算并约简至规范代表区间 \[0, m−1\]。
- 针对逆元运算，调用扩展欧几里得算法计算 gcd(a, m) 并输出 Bézout 等式；若互质则给出逆元，否则提示逆元不存在。
- 针对快速幂运算，将指数转化为二进制，展示平方-乘法表中每一位对应的模幂平方与乘积约简过程。

## 使用案例

- 密码学实验：计算 RSA 密钥生成中的私钥指数 d = e⁻¹ mod φ(n)。
- 数论作业核对：展示快速幂平方-乘法表和扩展欧几里得算法的逐步推导过程。
- 程序调试：验证竞赛编程中大模数（如 1000000007 或 998244353）下同余计算的正确性。

## 常见问题

### 什么是模逆元？什么时候不存在？

模逆元是满足 (a × x) ≡ 1 (mod m) 的整数 x。只有当 a 与模数 m 互质（即 gcd(a, m) = 1）时逆元才存在，否则工具会提示不存在。

### 为什么快速幂计算比直接连乘更高效？

快速幂利用指数的二进制分解与连续平方，将计算复杂度从 O(b) 降低到 O(log b)，可在极短时间内完成超大指数的计算。

### 计算器支持多大数值的运算？

底层采用 BigInt 精确计算，支持高达 10¹⁸ 及以上的整数，避免了标准浮点数的精度溢出问题。

### 减法运算结果出现负数如何处理？

工具会自动加上模数 m 并取模，将结果转换到 [0, m−1] 的规范非负余数区间。

### 求模逆元时需要输入数值 b 吗？

不需要。求逆元操作只需要输入被求逆的数值 a 和模数 m，数值 b 会被自动忽略。

## 相关工具

- [布尔代数表达式化简器（卡诺图辅助）](https://elysiatools.com/zh/tools/boolean-algebra-simplifier): 化简布尔函数并给出最小与或式（SOP）：输入表达式（A–D，+ 或 · 与、' 非，≤4 个变量）或直接给最小项 Σm 列表；用 Quine-McCluskey 算法求全部素蕴涵项，先取必要素蕴涵项再做精确最小覆盖，输出最小 SOP、格雷码卡诺图（2–4 变量）、Σm 规范式，并在全部赋值上验证与原函数一致。经典例：AB + A'B → B；Σm(0,1,2,4,5,6)（3 变量）→ B' + C'。
- [稀释比换算器（1:X ↔ 1/X ↔ 百分比）](https://elysiatools.com/zh/tools/dilution-ratio-converter): 在实验室稀释的各色写法之间互换：比例 1:X、分数 1/X、百分比浓度，并换算稀释倍数与溶质/稀释剂份数。支持两种 1:X 约定（X 为总份数，或 1 份溶质加 X 份稀释剂），输入最终体积即可算出溶质与稀释剂的取用量。经典示例：1:5 = 1/5 = 20%，配 100 mL 取 20 mL 原液加 80 mL 稀释剂。
- [扩展欧几里得算法（ax + by = gcd(a, b)）](https://elysiatools.com/zh/tools/extended-euclidean-algorithm): 对任意符号的整数 a、b 求解 Bézout 等式 a·x + b·y = gcd(a, b)：给出完整的前向除法步骤表（每行满足 r = a·s + b·t）、gcd 与 lcm。填入可选的右端 c 即变身为线性丢番图方程求解器：gcd | c 时给出特解与通解 x = x₀ + (b/g)t，否则明确报告无整数解。经典例：240 × (−9) + 46 × 47 = 2。
- [模逆元计算器（扩展欧几里得算法）](https://elysiatools.com/zh/tools/modular-inverse-calculator): 用扩展欧几里得算法求 a⁻¹ mod m：给出 Bézout 系数 a·x + m·y = gcd(a, m) 与完整的前向系数表（每行满足 r = a·s + m·t），并用 a × a⁻¹ ≡ 1 (mod m) 回代验证。支持 RSA 量级的大数（可达 10⁵¹² 位数级输入）；gcd(a, m) ≠ 1 时明确报告逆元不存在。经典例：RSA 中 17⁻¹ mod 3120 = 2753。
- [真值表生成器](https://elysiatools.com/zh/tools/truth-table-generator): 生成布尔表达式的完整真值表（最多 6 个变量，64 行）：支持 + 或、^ 异或、·/*/& 或连写与、!/~/' 非、括号；按字母序列出变量，逐行列出赋值与函数值 F，并给出规范式 Σm（最小项）与 ΠM（最大项）。经典例：AB + A'C 的 ON-set 为 Σm(1,3,6,7)；A ^ B ^ C 为奇校验函数 Σm(1,2,4,7)。
- [角速度单位换算器（rad/s / rpm / deg/s / Hz）](https://elysiatools.com/zh/tools/angular-velocity-converter): 角速度/角频率单位互转：rad/s（SI 基准）↔ rpm（转每分，1=2π/60 rad/s）↔ deg/s（度每秒，1=π/180 rad/s）↔ Hz（转每秒，1=2π rad/s）。注意 Hz 用于角频率时指每秒一整圈，故 1 Hz=2π rad/s。经 rad/s 中转后输出目标单位，并列出全部四单位等值。参考：黑胶 33⅓ rpm≈3.49 rad/s、发动机怠速 ~800 rpm≈83.8 rad/s。
- [风管截面尺寸计算器（按风量与流速）](https://elysiatools.com/zh/tools/duct-size-calculator): 由风量 Q 与设计流速 v 求风管截面尺寸：截面积 A=Q/v。圆形风管直径 D=√(4A/π)；矩形风管给定长宽比 r=a/b，则 b=√(A/r)，a=r·b，并按 ASHRAE 给出等效直径 D_eq=1.30·(a·b)^0.625/(a+b)^0.25。风量支持 m³/s/m³/h/CFM，结果同时给出 mm 与英寸。
- [疲劳极限计算器（Goodman / Gerber / Soderberg）](https://elysiatools.com/zh/tools/fatigue-limit-calculator): 平均应力修正下的疲劳安全系数。给定应力幅 σ_a、平均应力 σ_m，以及材料 σ_uts、疲劳极限 σ_-1、屈服 σ_y，输出三种经典判据的安全系数：Modified Goodman（线性保守）、Gerber（抛物线，更贴合延性材料）、Soderberg（用 σ_y，最保守）。取三者最小值为控制值，并判定工作点是否在 Haigh 图 Goodman 线内侧。

## 示例

- [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 图像处理示例，包括图像读取保存、缩放和格式转换
