Dixonův algoritmus je faktorizační algoritmus , který v zásadě využívá Legendrovu myšlenku , která spočívá v nalezení dvojice celých čísel a takových ,
Dixonova metoda je zobecněním Fermatovy metody .
Ve 20. letech 20. století Maurice Krajczyk (1882-1957), zobecňující Fermatovu větu, navrhl namísto dvojic čísel vyhovujících rovnici hledat dvojice čísel vyhovující obecnější rovnici . Krajczyk si všiml několika skutečností užitečných k řešení. V roce 1981 publikoval John Dickson metodu faktorizace, kterou vyvinul pomocí Kraitzikových myšlenek a vypočítal její výpočetní složitost. [2]
Rozložme číslo na faktor .
Všechna nalezená čísla s odpovídajícími vektory jsou zapsána do tabulky.
337 | 23814 | jeden | 5 | 0 | 2 | 0 | 0 |
430 | 5390 | jeden | 0 | jeden | 2 | jeden | 0 |
519 | 96 | 5 | jeden | 0 | 0 | 0 | 0 |
600 | 980 | 2 | 0 | jeden | 2 | 0 | 0 |
670 | 125 | 0 | 0 | 3 | 0 | 0 | 0 |
817 | 39204 | 2 | čtyři | 0 | 0 | 2 | 0 |
860 | 21560 | 3 | 0 | jeden | 2 | jeden | 0 |
Řešením lineárního systému rovnic získáme, že . Pak
Tudíž,
.Ukázalo se, že rozklad
Označte počtem celých čísel tak, že a je -hladké číslo, kde . Z de Bruijn-Erdősovy věty , kde . To znamená, že každé -hladké číslo v průměru narazí na pokusy. Chcete-li zkontrolovat, zda je číslo -hladké, musíte provést dělení . Podle algoritmu je nutné najít -hladké číslo. Tedy výpočetní náročnost hledání čísel
.Výpočtová složitost Gaussovy metody z rovnic
.Proto celková složitost Dixonova algoritmu
.Vezmeme-li v úvahu, že počet prvočísel je menší, než odhaduje vzorec , a že po zjednodušení dostaneme
.je zvolena tak, aby byla minimální. Pak nahrazením dostaneme
.Odhad provedený Pomeranzem na základě přísnější věty, než uvádí de Bruijn-Erdösova věta [6] , zatímco Dixonův původní odhad složitosti dává .
Zvažte další strategie, které urychlí činnost algoritmu.
Strategie LP (Large Prime Variation) používá velká prvočísla k urychlení procesu generování čísel .
AlgoritmusNechť číslo nalezené v položce 4 není hladké. Pak může být reprezentován tam, kde není dělitelné čísly z faktorové základny. Je zřejmé, že . Pokud navíc , pak s je prvočíslo a zahrneme ho do faktorové báze. To vám umožní najít další -hladká čísla, ale zvýší počet požadovaných hladkých čísel o 1. Chcete-li se vrátit k původní základně faktoru po kroku 5, proveďte následující. Pokud je nalezeno pouze jedno číslo, jehož expanze je zahrnuta v lichém stupni, musí být toto číslo vymazáno ze seznamu a odstraněno z faktorové základny. Pokud jsou například dvě taková čísla a , pak je třeba je přeškrtnout a přidat číslo . Indikátor bude vstupovat do expanze v sudé míře a bude chybět v systému lineárních rovnic.
Variace strategieJe možné použít strategii LP s několika prvočísly, která nejsou obsažena ve faktorové bázi. V tomto případě se k vyloučení dalších prvočísel používá teorie grafů .
Výpočetní složitostTeoretický odhad složitosti algoritmu pomocí strategie LP, který provedl Pomerants, se neliší od odhadu původní verze Dixonova algoritmu:
.Strategie EAS (early break) eliminuje některé úvahy tím, že nedokončí test plynulosti .
Algoritmusvolí se pevné . V Dixonově algoritmu je faktorizován zkušebním dělením podle . Ve strategii se zvolí EAS a číslo se nejprve rozloží zkušebními děleními a pokud po rozkladu zůstane nerozložená část větší než , pak se daná zahodí.
Variace strategieJe možné použít strategii EAS s více přestávkami, tedy s nějakou vzestupnou sekvencí a sestupnou sekvencí .
Výpočetní složitostOdhaduje se Dixonův algoritmus využívající strategii EAS pro
.Strategie PS používá algoritmus Pollard-Strassen , který pro a najde minimálního prvočíselného dělitele počtu gcd v . [osm]
AlgoritmusJe vybráno pevné . V Dixonově algoritmu je faktorizován zkušebním dělením podle . Ve strategii PS, . věříme . Aplikujeme Pollard-Strassenův algoritmus, vybereme pro nerozloženou část, získáme expanzi .
Výpočetní složitostSložitost Dixonova algoritmu se strategickým PS je minimální a rovná se
.