v výpočetní teorie čísel, Cipollov algoritmus je technika řešení a shoda formuláře
kde , tak n je čtverec X, a kde je zvláštní primární. Tady označuje konečnou pole s elementy; . The algoritmus je pojmenován po Michele Cipolla, an italština matematik kdo to objevil v roce 1907.
Kromě primárních modulů je Cipollov algoritmus také schopen přijímat druhé odmocniny modulo primární síly.[1]
Algoritmus
Vstupy:
- liché prvočíslo,
- , což je čtverec.
Výstupy:
- , uspokojující
Krok 1 je najít takhle není čtverec. Neexistuje žádný známý algoritmus pro nalezení takového , kromě pokus omyl metoda. Jednoduše vyberte a výpočtem Legendární symbol je vidět, zda splňuje podmínku. Šance, že náhodný uspokojí je . S dost velký, to je asi .[2] Proto očekávaný počet pokusů před nalezením vhodného je asi 2.
Krok 2 je výpočet X výpočtem v terénu . Tento X bude ten uspokojující
Li , pak také drží. A od té doby p je zvláštní, . Takže kdykoli řešení X je nalezeno, vždy existuje druhé řešení, -X.
Příklad
(Poznámka: Všechny prvky před druhým krokem jsou považovány za prvek a všechny prvky v kroku dva jsou považovány za prvky ).
Najít vše X takhle
Před použitím algoritmu je třeba to zkontrolovat je opravdu čtverec v . Proto symbol Legendre musí být rovno 1. To lze vypočítat pomocí Eulerovo kritérium; To potvrzuje, že 10 je čtverec, a proto lze použít algoritmus.
- Krok 1: Najděte A takhle není čtverec. Jak již bylo uvedeno, musí to být provedeno metodou pokusů a omylů. Vybrat . Pak se stane 7. Symbolem Legendre musí být -1. To lze opět vypočítat pomocí Eulerova kritéria. Tak je vhodnou volbou pro A.
- Krok 2: Vypočítat
Tak je také řešení Vskutku, a
Důkaz
První částí důkazu je ověření, že je skutečně pole. Kvůli jednoduchosti zápisu je definován jako . Samozřejmě, je kvadratický zbytek, takže neexistuje odmocnina v . Tento lze zhruba považovat za analogický komplexnímu číslu i Polní aritmetika je zcela zřejmá. Přidání je definován jako
- .
Násobení je také definována jako obvykle. S ohledem na to , stává se
- .
Nyní je třeba zkontrolovat vlastnosti pole. Vlastnosti uzavření při sčítání a násobení, asociativita, komutativita a distribučnost jsou snadno viditelné. Je to proto, že v tomto případě pole je poněkud připomíná pole komplexní čísla (s je obdobou i).
Přísada identita je , nebo více formálně : Nechte , pak
- .
Multiplikativní identita je , nebo více formálně :
- .
Zbývá jediné být polem je existence aditivní a multiplikativní inverze. Je snadno vidět, že aditivní inverzní z je , což je prvek , protože . Ve skutečnosti jde o aditivní inverzní prvky X a y. Pro zobrazení, že každý nenulový prvek má multiplikativní inverzní, zapište a . Jinými slovy,
- .
Takže dvě rovnosti a musí držet. Zpracování podrobností dává výrazy pro a , jmenovitě
- ,
- .
Inverzní prvky, které jsou zobrazeny ve výrazech a existují, protože to jsou všechny prvky . Tím je dokončena první část důkazu, což ukazuje je pole.
Druhá a střední část důkazu ukazuje, že pro každý prvek .Podle definice, není čtverec v . Eulerovo kritérium to pak říká
- .
Tím pádem . To spolu s Fermatova malá věta (což říká, že pro všechny ) a znalosti, které v oborech charakteristický p rovnice drží, vztah někdy nazývaný První sen, ukazuje požadovaný výsledek
- .
Třetí a poslední částí důkazu je ukázat, že pokud , pak .
Vypočítat
- .
Všimněte si, že tento výpočet proběhl v , takže tohle . Ale s Lagrangeova věta s tím, že nenulová polynomiální stupně n má nanejvýš n kořeny v jakémkoli oboru K.a znalost toho má 2 kořeny v , tyto kořeny musí být všechny kořeny . To se právě ukázalo a jsou kořeny v , tak to musí být ono .[3]
Rychlost
Po nalezení vhodného A, počet operací požadovaných pro algoritmus je násobení, částky, kde m je počet číslice v binární reprezentace z p a k je počet těch v tomto zastoupení. Najít A metodou pokusu a omylu je očekávaný počet výpočtů symbolu Legendre 2. Jeden však může mít štěstí při prvním pokusu a jeden může potřebovat více než 2 pokusy. V oboru , platí následující dvě rovnosti
kde je známo předem. Tento výpočet vyžaduje 4 násobení a 4 součty.
kde a . Tato operace vyžaduje 6 násobení a 4 součty.
Za předpokladu, že (v případě , přímý výpočet je mnohem rychlejší) binární výraz má číslice, z toho k jsou jedni. Takže pro výpočet a síla , je třeba použít první vzorec časy a druhý krát.
Z tohoto důvodu je Cipollov algoritmus lepší než Algoritmus Tonelli – Shanks kdyby a jen kdyby , s je maximální výkon 2, který rozděluje .[4]
Prime power modui
Podle Dicksonovy „Historie čísel“ najde následující vzorec Cipolly druhou mocninu modulo mocnin prvočísla:[5][6]
- kde a
- kde , jako v příkladu tohoto článku
Vezmeme-li příklad v článku wiki, můžeme vidět, že tento vzorec výše skutečně přijímá druhé odmocniny modulo prime power.
Tak jako
Nyní vyřešte pro přes:
Nyní vytvořte a (Vidět tady pro matematický kód zobrazující výše uvedený výpočet, pamatující si, že se zde děje něco blízkého složité modulární aritmetice)
Jako takový:
- a
a konečná rovnice je:
- což je odpověď.
Reference
- ^ „Historie teorie čísel“, díl 1, Leonard Eugene Dickson, p218číst online
- ^ R. Crandall, C. Pomerance Prime Numbers: A Computational Perspective Springer-Verlag, (2001) str. 157
- ^ M. Baker Cipollov algoritmus pro hledání odmocnin mod str
- ^ Gonzalo Tornaria Odmocniny modulo str
- ^ „Historie teorie čísel“, díl 1, Leonard Eugene Dickson, p218, nakladatelství Chelsea 1952číst online
- ^ Michelle Cipolla, Rendiconto dell 'Accademia delle Scienze Fisiche e Matematiche. Napoli, (3), 10,1904, 144-150
Zdroje
- E. Bach, J.O. Shallit Algoritmická teorie čísel: Efektivní algoritmy MIT Press, (1996)
- Leonard Eugene Dickson Dějiny teorie čísel Svazek 1 p218 [1]