计划执行与检查节点
executing-plans
按既定实施计划完成工作,保持过程检查和反馈。
solve-modular-arithmetic【效率与协作】Solve modular arithmetic problems including congruences, systems via the Chinese Remainder Theorem, modular inverses, and Euler's theorem applications. Covers both manual and computational approaches. Use when solving linear congruences, computing modular inverses, evaluating large modular exponentiations, working with simultaneous congruences (CRT),…
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
解模算之問——析同餘系、行擴展歐幾里得算以求逆、用中國剩餘定理解同餘之系、施歐拉定理於模冪。每解皆以代入而驗。
自題述提數學之構。
識其類:
正規化:諸係皆模其應之模而減。確 a、b、m 為非負整,m > 0。
記已析之題以標式書之。
得:明析而正規化之模題,諸值皆減。
敗則:若記不明(如「solve 3x + 5 = 2 mod 7」可解為 3x + 5 = 2 (mod 7) 或 3x + (5 = 2 mod 7)),請用者明之。默為 mod 施於全方程。
以擴歐解 ax = b (mod m)。
算 g = gcd(a, m) 用歐幾里得算:
察可解:ax = b (mod m) 有解當且唯當 g | b。
減:俱除以 g 得 (a/g)x = (b/g) (mod m/g)。今 gcd(a/g, m/g) = 1。
求 a/g 對 m/g 之模逆 用擴歐:
算特解:x0 = s * (b/g) mod (m/g)。
書通解:x = x0 + (m/g)*k 為 k = 0, 1, ..., g - 1,凡 g 不同餘解皆現於 mod m。
擴歐之例(求 17^{-1} mod 43):
43 = 2*17 + 9
17 = 1*9 + 8
9 = 1*8 + 1
8 = 8*1 + 0
Back-substitute:
1 = 9 - 1*8
= 9 - 1*(17 - 1*9) = 2*9 - 17
= 2*(43 - 2*17) - 17 = 2*43 - 5*17
So 17*(-5) = 1 (mod 43), i.e., 17^{-1} = -5 = 38 (mod 43).
得:同餘之全解集,或無解之證。
敗則:若擴歐反代生誤,驗各除步。最常之誤為反代中之符誤。察:a * inverse mod m 當為 1。
解 x = a1 (mod m1)、x = a2 (mod m2)、...、x = ak (mod mk)。
察兩兩互素:每對 (mi, mj),驗 gcd(mi, mj) = 1。
算 M = m1 * m2 * ... * mk(諸模之積)。
各 i 算 Mi = M / mi(除 mi 之諸模之積)。
各 i 求 yi = Mi^{-1} (mod mi) 以第二步之擴歐。
算解:x = sum(ai * Mi * yi for i = 1..k) mod M。
陳果:x = [value] (mod M)。此為 mod M 之唯一解。
常 totient 之參:
| n | phi(n) | n | phi(n) | n | phi(n) |
|---|---|---|---|---|---|
| 2 | 1 | 10 | 4 | 20 | 8 |
| 3 | 2 | 11 | 10 | 24 | 8 |
| 4 | 2 | 12 | 4 | 25 | 20 |
| 5 | 4 | 13 | 12 | 30 | 8 |
| 6 | 2 | 14 | 6 | 36 | 12 |
| 7 | 6 | 15 | 8 | 48 | 16 |
| 8 | 4 | 16 | 8 | 60 | 16 |
| 9 | 6 | 18 | 6 | 100 | 40 |
得:mod M 之唯一解,或不容之證。
敗則:若 CRT 算生果驗敗,察第四步之模逆算。常之誤為算 Mi^{-1} mod M 而非 Mi^{-1} mod mi。各逆以個模算,非以積算。
以歐拉定理求模冪或簡式。
歐拉定理:若 gcd(a, m) = 1,則 a^{phi(m)} = 1 (mod m)。
費馬小定理(特例):若 p 為素而 gcd(a, p) = 1,則 a^{p-1} = 1 (mod p)。
減指:算 a^k (mod m):
算 a^r (mod m) 用反復平方(二進冪):
gcd(a, m) > 1 之治:歐拉定理不直施。分 m 而以 CRT 合素冪模之果,用提升指或直算。
得:a^k (mod m) 之值,由減指與反復平方算之。
敗則:若 gcd(a, m) > 1 而果似誤,勿施歐拉定理。代之以直算或分 m 為互素部,至少某部與 a 互素,於各部解,以 CRT 重合。
每解皆代入原方程而察。
單同餘:算 a * x mod m 而驗其等 b。
CRT 系:每同餘 x = ai (mod mi),驗 x mod mi = ai。
模冪:若可,以二法驗(如小值之直算或獨之反復平方實)。
明書驗:
Solution: x = 23
Check 1: 23 mod 3 = 2 = a1. Correct.
Check 2: 23 mod 5 = 3 = a2. Correct.
Check 3: 23 mod 7 = 2 = a3. Correct.
All congruences satisfied.
得:諸原方程皆驗,明示其算。
敗則:若驗敗,回追法以尋算誤。常源:擴歐之算誤、反代之符誤、忘終 CRT 步中減 mod M。
施 CRT 而不察互素:標 CRT 公式須兩兩互素之模。施於非互素得誤果,非錯。先察 gcd(mi, mj) = 1。
算誤之逆:Mi^{-1} 須以 mi(個模)算,非以 M(積)算。CRT 實之最常誤。
gcd(a, m) > 1 而施歐拉定理:a^{phi(m)} = 1 (mod m) 須 gcd(a, m) = 1。否則定理不施而果誤。
擴歐反代之符誤:諸步皆慎追符。終逆或負;恆減 mod m 以得正代表。
模冪之溢:縱反復平方,中積可溢。每乘後皆減 mod m,非僅末。
忘多解:ax = b (mod m) 而 g = gcd(a, m) > 1 且 g | b 有恰 g 不同餘解於 mod m,非唯一。
analyze-prime-numbers — 素分解須以算 phi(m) 與驗互素explore-diophantine-equations — 線性 Diophantine 方程 ax + by = c 等於線性同餘 ax = c (mod b)prove-geometric-theorem — 模算現於可構造之證(如何規 n 邊形可構)