Algoritmul lui Dixon este un algoritm de factorizare care folosește practic ideea lui Legendre , care constă în găsirea unei perechi de numere întregi și astfel încât și
Metoda lui Dixon este o generalizare a metodei lui Fermat .
În anii 1920, Maurice Krajczyk (1882-1957), generalizând teorema lui Fermat, a sugerat în loc de perechi de numere care să satisfacă ecuația , să caute perechi de numere care să satisfacă o ecuație mai generală . Krajczyk a observat câteva fapte utile pentru rezolvare. În 1981, John Dickson a publicat o metodă de factorizare pe care a dezvoltat-o folosind ideile lui Kraitzik și a calculat complexitatea ei de calcul. [2]
Să factorizăm numărul .
Toate numerele găsite cu vectorii corespunzători sunt scrise în tabel.
337 | 23814 | unu | 5 | 0 | 2 | 0 | 0 |
430 | 5390 | unu | 0 | unu | 2 | unu | 0 |
519 | 96 | 5 | unu | 0 | 0 | 0 | 0 |
600 | 980 | 2 | 0 | unu | 2 | 0 | 0 |
670 | 125 | 0 | 0 | 3 | 0 | 0 | 0 |
817 | 39204 | 2 | patru | 0 | 0 | 2 | 0 |
860 | 21560 | 3 | 0 | unu | 2 | unu | 0 |
Rezolvând un sistem liniar de ecuații, obținem că . Apoi
Prin urmare,
.S-a dovedit descompunere
Se notează cu numărul de numere întregi astfel încât și este un număr neted, unde . Din teorema lui de Bruijn-Erdős , unde . Aceasta înseamnă că fiecare număr neted va veni, în medie, prin încercări. Pentru a verifica dacă un număr este neted, trebuie efectuate împărțiri . Conform algoritmului, este necesar să se găsească un număr neted. Deci complexitatea de calcul a găsirii numerelor
.Complexitatea computațională a metodei Gauss din ecuații
.Prin urmare, complexitatea totală a algoritmului lui Dixon
.Ținând cont de faptul că numărul de numere prime este mai mic decât este estimat prin formula și că , după simplificare, obținem
.este ales în așa fel încât să fie minim. Apoi înlocuind , obținem
.Estimarea făcută de Pomeranz pe baza unei teoreme mai riguroase decât teorema de Bruijn-Erdös [6] dă , în timp ce estimarea originală a complexității lui Dixon dă .
Luați în considerare strategii suplimentare care accelerează funcționarea algoritmului.
Strategia LP (Large Prime Variation) folosește numere prime mari pentru a accelera procedura de generare a numerelor .
AlgoritmNumărul găsit la articolul 4 să nu fie neted. Apoi poate fi reprezentat acolo unde nu este divizibil cu numere din baza factorilor. Este evident că . Dacă în plus , atunci s este prim și îl includem în baza factorilor. Acest lucru vă permite să găsiți numere netede suplimentare, dar crește numărul de numere netede necesare cu 1. Pentru a reveni la baza factorilor inițiali după pasul 5, procedați în felul următor. Dacă se găsește un singur număr, a cărui extindere este inclusă într-un grad impar, atunci acest număr trebuie șters din listă și șters din baza factorilor. Dacă, de exemplu, există două astfel de numere și , atunci acestea trebuie tăiate și numărul adăugat . Indicatorul va intra în expansiune într-un grad egal și va fi absent în sistemul de ecuații liniare.
Variația strategieiEste posibil să se utilizeze strategia LP cu mai multe numere prime care nu sunt cuprinse în baza factorilor. În acest caz , teoria grafurilor este folosită pentru a exclude numere prime suplimentare .
Complexitate computaționalăEstimarea teoretică a complexității algoritmului folosind strategia LP, realizată de Pomerants, nu diferă de estimarea versiunii originale a algoritmului Dixon:
.Strategia EAS (pauza timpurie) elimină unele dintre considerente prin nefinalizarea testului de netezime.
Algoritmse aleg cele fixe . În algoritmul lui Dixon, este factorizat prin diviziuni de probă cu . În strategie, se alege EAS și numărul este mai întâi factorizat prin diviziunile de probă cu , iar dacă după descompunere partea necompusă rămâne mai mare decât , atunci cea dată este aruncată.
Variația strategieiEste posibil să folosiți o strategie EAS cu pauze multiple, adică cu o secvență ascendentă și o secvență descrescătoare .
Complexitate computaționalăAlgoritmul lui Dixon care utilizează strategia EAS pentru este estimat
.Strategia PS folosește algoritmul Pollard-Strassen , care pentru și găsește divizorul prim minim al numărului de mcd-uri în . [opt]
AlgoritmFix este selectat . În algoritmul lui Dixon, este factorizat prin diviziuni de probă cu . În strategia PS, . noi credem . Aplicăm algoritmul Pollard-Strassen, alegând pentru partea necompusă, obținem expansiunea .
Complexitate computaționalăComplexitatea algoritmului lui Dixon cu strategia PS este minimă la și este egală cu
.