name: 模运算 description: “图数论中模算术问题解决策略” allowed-tools: [Bash, Read]
模运算
何时使用
在图形数论中处理模算术问题时使用此技能。
决策树
-
扩展欧几里得算法
- 找到gcd(a,b)和x,y,使得ax + by = gcd(a,b)
- 模逆:a^{-1} mod n 当gcd(a,n) = 1时
sympy_compute.py solve "a*x == 1 mod n"
-
中国剩余定理
- 系统 x = a_i (mod m_i) 其中m_i互质
- 唯一解模prod(m_i)
z3_solve.py prove "crt_solution_exists"
-
欧拉定理
- a^{phi(n)} = 1 (mod n) 当gcd(a,n) = 1时
- phi(p^k) = p^{k-1}(p-1)
sympy_compute.py simplify "euler_phi"
-
二次剩余
- 勒让德符号:(a/p) = a^{(p-1)/2} mod p
- 二次互反律:(p/q)(q/p) = (-1)^{…}
- Tonelli-Shanks算法求平方根
-
阶与本原根
- ord_n(a) = 最小k使得a^k = 1 (mod n)
- 本原根:ord_n(a) = phi(n)
工具命令
Sympy_Mod_Inverse
uv run python -m runtime.harness scripts/sympy_compute.py solve "a*x == 1 mod n" --var x
Z3_Crt
uv run python -m runtime.harness scripts/z3_solve.py prove "solution_exists_iff_pairwise_coprime"
Sympy_Euler_Phi
uv run python -m runtime.harness scripts/sympy_compute.py simplify "phi(p**k) == p**(k-1)*(p-1)"
Z3_Quadratic_Residue
uv run python -m runtime.harness scripts/z3_solve.py prove "legendre_symbol_multiplicative"
关键技术
摘自索引教科书:
- [图论(研究生数学教材(173))] 我们用N表示自然数集,包括零。整数模n的集合Z/nZ表示为Zn;其元素写为i := i + nZ。当我们将Z2 = {0, 1}视为域时,也表示为F2 = {0, 1}。
认知工具参考
参见.claude/skills/math-mode/SKILL.md获取完整工具文档。