Jacobi symbol - Jacobi symbol - Wikipedia
k n | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 1 | ||||||||||||||||
3 | 0 | 1 | −1 | ||||||||||||||
5 | 0 | 1 | −1 | −1 | 1 | ||||||||||||
7 | 0 | 1 | 1 | −1 | 1 | −1 | −1 | ||||||||||
9 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | ||||||||
11 | 0 | 1 | −1 | 1 | 1 | 1 | −1 | −1 | −1 | 1 | −1 | ||||||
13 | 0 | 1 | −1 | 1 | 1 | −1 | −1 | −1 | −1 | 1 | 1 | −1 | 1 | ||||
15 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | −1 | 1 | 0 | 0 | −1 | 0 | −1 | −1 | ||
17 | 0 | 1 | 1 | −1 | 1 | −1 | −1 | −1 | 1 | 1 | −1 | −1 | −1 | 1 | −1 | 1 | 1 |
The Jacobi symbol je zobecněním Legendární symbol. Představil Jacobi v roce 1837,[1] je teoreticky zajímavý modulární aritmetika a další pobočky teorie čísel, ale jeho hlavní použití je v výpočetní teorie čísel, zvláště testování primality a celočíselná faktorizace; ty jsou zase důležité v kryptografie.
Definice
Pro jakékoli celé číslo A a jakékoli kladné liché celé číslo n, symbol Jacobi (A/n) je definován jako produkt Legendární symboly odpovídající hlavním faktorům n:
kde
je hlavní faktorizace n.
Symbol legendy (A/str) je definována pro všechna celá čísla A a všechny liché prvočísla str podle
Podle běžné konvence pro prázdný produkt (A/1) = 1.
Když je dolním argumentem liché prvočíslo, Jacobiho symbol se rovná symbolu Legendre.
Tabulka hodnot
Následuje tabulka hodnot symbolu Jacobi (k/n) s n ≤ 59, k ≤ 30, n zvláštní.
k n | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
3 | 1 | −1 | 0 | 1 | −1 | 0 | 1 | −1 | 0 | 1 | −1 | 0 | 1 | −1 | 0 | 1 | −1 | 0 | 1 | −1 | 0 | 1 | −1 | 0 | 1 | −1 | 0 | 1 | −1 | 0 |
5 | 1 | −1 | −1 | 1 | 0 | 1 | −1 | −1 | 1 | 0 | 1 | −1 | −1 | 1 | 0 | 1 | −1 | −1 | 1 | 0 | 1 | −1 | −1 | 1 | 0 | 1 | −1 | −1 | 1 | 0 |
7 | 1 | 1 | −1 | 1 | −1 | −1 | 0 | 1 | 1 | −1 | 1 | −1 | −1 | 0 | 1 | 1 | −1 | 1 | −1 | −1 | 0 | 1 | 1 | −1 | 1 | −1 | −1 | 0 | 1 | 1 |
9 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 0 |
11 | 1 | −1 | 1 | 1 | 1 | −1 | −1 | −1 | 1 | −1 | 0 | 1 | −1 | 1 | 1 | 1 | −1 | −1 | −1 | 1 | −1 | 0 | 1 | −1 | 1 | 1 | 1 | −1 | −1 | −1 |
13 | 1 | −1 | 1 | 1 | −1 | −1 | −1 | −1 | 1 | 1 | −1 | 1 | 0 | 1 | −1 | 1 | 1 | −1 | −1 | −1 | −1 | 1 | 1 | −1 | 1 | 0 | 1 | −1 | 1 | 1 |
15 | 1 | 1 | 0 | 1 | 0 | 0 | −1 | 1 | 0 | 0 | −1 | 0 | −1 | −1 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | −1 | 1 | 0 | 0 | −1 | 0 | −1 | −1 | 0 |
17 | 1 | 1 | −1 | 1 | −1 | −1 | −1 | 1 | 1 | −1 | −1 | −1 | 1 | −1 | 1 | 1 | 0 | 1 | 1 | −1 | 1 | −1 | −1 | −1 | 1 | 1 | −1 | −1 | −1 | 1 |
19 | 1 | −1 | −1 | 1 | 1 | 1 | 1 | −1 | 1 | −1 | 1 | −1 | −1 | −1 | −1 | 1 | 1 | −1 | 0 | 1 | −1 | −1 | 1 | 1 | 1 | 1 | −1 | 1 | −1 | 1 |
21 | 1 | −1 | 0 | 1 | 1 | 0 | 0 | −1 | 0 | −1 | −1 | 0 | −1 | 0 | 0 | 1 | 1 | 0 | −1 | 1 | 0 | 1 | −1 | 0 | 1 | 1 | 0 | 0 | −1 | 0 |
23 | 1 | 1 | 1 | 1 | −1 | 1 | −1 | 1 | 1 | −1 | −1 | 1 | 1 | −1 | −1 | 1 | −1 | 1 | −1 | −1 | −1 | −1 | 0 | 1 | 1 | 1 | 1 | −1 | 1 | −1 |
25 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 0 |
27 | 1 | −1 | 0 | 1 | −1 | 0 | 1 | −1 | 0 | 1 | −1 | 0 | 1 | −1 | 0 | 1 | −1 | 0 | 1 | −1 | 0 | 1 | −1 | 0 | 1 | −1 | 0 | 1 | −1 | 0 |
29 | 1 | −1 | −1 | 1 | 1 | 1 | 1 | −1 | 1 | −1 | −1 | −1 | 1 | −1 | −1 | 1 | −1 | −1 | −1 | 1 | −1 | 1 | 1 | 1 | 1 | −1 | −1 | 1 | 0 | 1 |
31 | 1 | 1 | −1 | 1 | 1 | −1 | 1 | 1 | 1 | 1 | −1 | −1 | −1 | 1 | −1 | 1 | −1 | 1 | 1 | 1 | −1 | −1 | −1 | −1 | 1 | −1 | −1 | 1 | −1 | −1 |
33 | 1 | 1 | 0 | 1 | −1 | 0 | −1 | 1 | 0 | −1 | 0 | 0 | −1 | −1 | 0 | 1 | 1 | 0 | −1 | −1 | 0 | 0 | −1 | 0 | 1 | −1 | 0 | −1 | 1 | 0 |
35 | 1 | −1 | 1 | 1 | 0 | −1 | 0 | −1 | 1 | 0 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | −1 | −1 | 0 | 0 | −1 | −1 | −1 | 0 | −1 | 1 | 0 | 1 | 0 |
37 | 1 | −1 | 1 | 1 | −1 | −1 | 1 | −1 | 1 | 1 | 1 | 1 | −1 | −1 | −1 | 1 | −1 | −1 | −1 | −1 | 1 | −1 | −1 | −1 | 1 | 1 | 1 | 1 | −1 | 1 |
39 | 1 | 1 | 0 | 1 | 1 | 0 | −1 | 1 | 0 | 1 | 1 | 0 | 0 | −1 | 0 | 1 | −1 | 0 | −1 | 1 | 0 | 1 | −1 | 0 | 1 | 0 | 0 | −1 | −1 | 0 |
41 | 1 | 1 | −1 | 1 | 1 | −1 | −1 | 1 | 1 | 1 | −1 | −1 | −1 | −1 | −1 | 1 | −1 | 1 | −1 | 1 | 1 | −1 | 1 | −1 | 1 | −1 | −1 | −1 | −1 | −1 |
43 | 1 | −1 | −1 | 1 | −1 | 1 | −1 | −1 | 1 | 1 | 1 | −1 | 1 | 1 | 1 | 1 | 1 | −1 | −1 | −1 | 1 | −1 | 1 | 1 | 1 | −1 | −1 | −1 | −1 | −1 |
45 | 1 | −1 | 0 | 1 | 0 | 0 | −1 | −1 | 0 | 0 | 1 | 0 | −1 | 1 | 0 | 1 | −1 | 0 | 1 | 0 | 0 | −1 | −1 | 0 | 0 | 1 | 0 | −1 | 1 | 0 |
47 | 1 | 1 | 1 | 1 | −1 | 1 | 1 | 1 | 1 | −1 | −1 | 1 | −1 | 1 | −1 | 1 | 1 | 1 | −1 | −1 | 1 | −1 | −1 | 1 | 1 | −1 | 1 | 1 | −1 | −1 |
49 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 |
51 | 1 | −1 | 0 | 1 | 1 | 0 | −1 | −1 | 0 | −1 | 1 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | −1 | 1 | 0 | 1 | −1 | 0 | −1 | 1 | 0 |
53 | 1 | −1 | −1 | 1 | −1 | 1 | 1 | −1 | 1 | 1 | 1 | −1 | 1 | −1 | 1 | 1 | 1 | −1 | −1 | −1 | −1 | −1 | −1 | 1 | 1 | −1 | −1 | 1 | 1 | −1 |
55 | 1 | 1 | −1 | 1 | 0 | −1 | 1 | 1 | 1 | 0 | 0 | −1 | 1 | 1 | 0 | 1 | 1 | 1 | −1 | 0 | −1 | 0 | −1 | −1 | 0 | 1 | −1 | 1 | −1 | 0 |
57 | 1 | 1 | 0 | 1 | −1 | 0 | 1 | 1 | 0 | −1 | −1 | 0 | −1 | 1 | 0 | 1 | −1 | 0 | 0 | −1 | 0 | −1 | −1 | 0 | 1 | −1 | 0 | 1 | 1 | 0 |
59 | 1 | −1 | 1 | 1 | 1 | −1 | 1 | −1 | 1 | −1 | −1 | 1 | −1 | −1 | 1 | 1 | 1 | −1 | 1 | 1 | 1 | 1 | −1 | −1 | 1 | 1 | 1 | 1 | 1 | −1 |
Vlastnosti
Následující fakta, dokonce i zákony o vzájemnosti, jsou přímými dedukcemi z definice symbolu Jacobi a odpovídajících vlastností symbolu Legendre.[2]
Symbol Jacobi je definován pouze v případě, že horní argument („čitatel“) je celé číslo a dolní argument („jmenovatel“) je kladné liché celé číslo.
- 1. Pokud n je (liché) prvočíslo, pak symbol Jacobi (A/n) se rovná (a je psáno stejně) odpovídajícímu symbolu Legendre.
- 2. Pokud A ≡ b (mod n), pak
- 3.
Pokud je horní nebo dolní argument pevný, symbol Jacobi je a zcela multiplikativní funkce ve zbývajícím argumentu:
- 4.
- 5.
The zákon kvadratické vzájemnosti: pokud m a n jsou tedy lichá pozitivní celá čísla coprime
- 6.
a jeho doplňky
- 7.
- 8.
Kombinace vlastnosti 4 a 8 dává:
- 9.
Jako symbol legendy:
- Li (A/n) = -1 pak A je kvadratické neresiduální modulo n.
- Li A je kvadratický zbytek modulo n a gcd (A,n) = 1, tedy (A/n) = 1.
Ale na rozdíl od symbolu Legendre:
- Li (A/n) = 1 tedy A může nebo nemusí být kvadratickým zbytkem modulo n.
Je to proto, že pro A být kvadratickým zbytkem modulo n, musí to být kvadratický zbytek modulo každý hlavní faktor n. Symbol Jacobi se však rovná jednomu, pokud například A je non-zbytek modulo přesně dva z hlavních faktorů n.
Ačkoli Jacobiho symbol nemůže být jednotně interpretován ve smyslu čtverců a jiných čtverců, může být jednotně interpretován jako znak permutace Zolotarevovo lemma.
Symbol Jacobi (A/n) je Dirichletova postava do modulu n.
Výpočet symbolu Jacobi
Výše uvedené vzorce vedou k efektivnímu Ó (log A log b)[3] algoritmus pro výpočet Jacobiho symbolu, analogický k Euklidovský algoritmus pro nalezení gcd dvou čísel. (To by nemělo být překvapující ve světle pravidla 2.)
- Snižte „čitatele“ a „jmenovatele“ pomocí pravidla 2.
- Extrahujte libovolný sudý „čitatel“ pomocí pravidla 9.
- Pokud je „čitatel“ 1, pravidla 3 a 4 dávají výsledek 1. Pokud „čitatel“ a „jmenovatel“ nejsou coprime, pravidlo 3 dává výsledek 0.
- Jinak jsou „čitatel“ a „jmenovatel“ nyní lichá kladná celá čísla coprime, takže můžeme symbol převrátit pomocí pravidla 6 a poté se vrátit ke kroku 1.
Implementace v Lua
funkce jacobi(n, k) tvrdit(k > 0 a k % 2 == 1) n = n % k t = 1 zatímco n ~= 0 dělat zatímco n % 2 == 0 dělat n = n / 2 r = k % 8 -li r == 3 nebo r == 5 pak t = -t konec konec n, k = k, n -li n % 4 == 3 a k % 4 == 3 pak t = -t konec n = n % k konec -li k == 1 pak vrátit se t jiný vrátit se 0 koneckonec
Příklad výpočtů
Symbol legendy (A/str) je definováno pouze pro lichá prvočísla str. Řídí se stejnými pravidly jako symbol Jacobi (tj. Vzájemnost a doplňkové vzorce pro (−1/str) a (2/str) a multiplikativita „čitatele“.)
Problém: Vzhledem k tomu, že 9907 je prvočíslo, vypočítejte (1001/9907).
Pomocí symbolu Legendre
Pomocí symbolu Jacobi
Rozdíl mezi těmito dvěma výpočty spočívá v tom, že když se použije symbol Legendre, musí se „čitatel“ započítat do hlavních sil, než se symbol převrátí. Díky tomu je výpočet pomocí symbolu Legendre výrazně pomalejší než výpočet pomocí symbolu Jacobi, protože neexistuje žádný algoritmus polynomiálního času pro factoringová celá čísla.[4] To je důvod, proč Jacobi představil tento symbol.
Testování originality
Existuje ještě další způsob, jak se symboly Jacobi a Legendre liší. Pokud Eulerovo kritérium vzorec se používá modulo složené číslo, výsledkem může nebo nemusí být hodnota Jacobiho symbolu a ve skutečnosti nemusí být ani −1 nebo 1. Například
Pokud tedy není známo, zda číslo n je prvočíslo nebo složené, můžeme vybrat náhodné číslo A, vypočítat symbol Jacobi (A/n) a porovnat to s Eulerovým vzorcem; pokud se liší modulo n, pak n je složený; pokud mají stejný zbytek modulo n pro mnoho různých hodnot A, pak n je „pravděpodobně hlavní“.
To je základ pro pravděpodobnostní Test primality Solovay – Strassen a vylepšení, jako je Baityho-PSW test primality a Miller – Rabinův test primality.
Jako nepřímé použití je možné jej použít jako rutinu detekce chyb během provádění Lucas-Lehmerův test primality jejichž zpracování může dokonce i na moderním počítačovém hardwaru trvat týdny Mersennova čísla přes (největší známý Mersenne prime od prosince 2018). V nominálních případech symbol Jacobi:
To platí i pro konečný zbytek a proto může být použit jako ověření pravděpodobné platnosti. Pokud se však v hardwaru vyskytne chyba, existuje 50% šance, že se výsledek místo toho změní na 0 nebo 1 a nezmění se s následnými podmínkami (pokud nedojde k další chybě a nezmění ji zpět na -1).
Viz také
- Symbol Kronecker, zobecnění Jacobiho symbolu na všechna celá čísla.
- Symbol zbytkové síly, zobecnění symbolu Jacobi na zbytky vyšších sil.
Poznámky
- ^ Jacobi, C. G. J. (1837). „Über die Kreisteilung und ihre Anwendung auf die Zahlentheorie“. Bericht Ak. Wiss. Berlín: 127–136.
- ^ Irsko a Rosen str. 56–57 nebo Lemmermeyer str. 10
- ^ Cohen, s. 29–31
- ^ The číslo pole síto, nejrychlejší známý algoritmus, vyžaduje
Reference
- Cohen, Henri (1993). Kurz výpočetní algebraické teorie čísel. Berlín: Springer. ISBN 3-540-55640-0.
- Irsko, Kenneth; Rosen, Michael (1990). Klasický úvod do moderní teorie čísel (druhé vydání). New York: Springer. ISBN 0-387-97329-X.
- Lemmermeyer, Franz (2000). Zákony o vzájemnosti: od Eulera po Eisenstein. Berlín: Springer. ISBN 3-540-66957-4.
- Shallit, Jeffrey (Prosinec 1990). „Nejhorší případ tří algoritmů pro výpočet Jacobiho symbolu“. Journal of Symbolic Computation. 10 (6): 593–61. doi:10.1016 / S0747-7171 (08) 80160-5. Technická zpráva o informatice PCS-TR89-140.
- Vallée, Brigitte; Lemée, Charly (říjen 1998). Průměrné analýzy tří algoritmů pro výpočet Jacobiho symbolu (Technická zpráva). CiteSeerX 10.1.1.32.3425.
- Eikenberry, Shawna Meyer; Sorenson, Jonathan P. (říjen 1998). „Efektivní algoritmy pro výpočet Jacobiho symbolu“ (PDF). Journal of Symbolic Computation. 26 (4): 509–523. CiteSeerX 10.1.1.44.2423. doi:10.1006 / jsco.1998.0226.
externí odkazy
- Vypočítejte symbol Jacobi ukazuje kroky výpočtu.