Dixonin algoritmi on faktorointialgoritmi , joka periaatteessa käyttää Legendren ideaa , joka koostuu kokonaislukuparin löytämisestä ja sellaisesta , että ja
Dixonin menetelmä on yleistys Fermatin menetelmästä .
1920-luvulla Maurice Krajczyk (1882-1957) yleisti Fermatin lauseen, ja ehdotti yhtälön täyttävien lukuparien sijasta etsimään lukupareja , jotka täyttävät yleisemmän yhtälön . Krajczyk huomasi useita ratkaisemiseen hyödyllisiä tosiasioita. Vuonna 1981 John Dickson julkaisi Kraitzikin ideoita käyttäen kehittämänsä faktorointimenetelmän ja laski sen laskennallisen monimutkaisuuden. [2]
Otetaan luku tekijöihin .
Kaikki löydetyt luvut vastaavilla vektoreilla kirjoitetaan taulukkoon.
337 | 23814 | yksi | 5 | 0 | 2 | 0 | 0 |
430 | 5390 | yksi | 0 | yksi | 2 | yksi | 0 |
519 | 96 | 5 | yksi | 0 | 0 | 0 | 0 |
600 | 980 | 2 | 0 | yksi | 2 | 0 | 0 |
670 | 125 | 0 | 0 | 3 | 0 | 0 | 0 |
817 | 39204 | 2 | neljä | 0 | 0 | 2 | 0 |
860 | 21560 | 3 | 0 | yksi | 2 | yksi | 0 |
Ratkaisemalla lineaarisen yhtälöjärjestelmän saamme, että . Sitten
Näin ollen
.Se osoittautui hajoamiseksi
Merkitään kokonaislukujen lukumäärällä siten, että ja on -tasainen luku, jossa . De Bruijn-Erdősin lauseesta , jossa . Tämä tarkoittaa, että jokainen -sileä luku tulee keskimäärin vastaan yrityksistä. Jotta voit tarkistaa, onko luku -sileä, jako on suoritettava . Algoritmin mukaan on tarpeen löytää -sileä luku. Joten lukujen löytämisen laskennallinen monimutkaisuus
.Gaussin menetelmän laskennallinen monimutkaisuus yhtälöistä
.Siksi Dixonin algoritmin kokonaismonimutkaisuus
.Ottaen huomioon, että alkulukujen määrä on pienempi kuin kaavalla on arvioitu ja että yksinkertaistamisen jälkeen saadaan
.valitaan siten, että se on minimaalinen. Sitten korvaamalla saamme
.Pomeranzin tekemä estimaatti de Bruijn-Erdös -lausetta tiukemman lauseen perusteella [6] antaa , kun taas Dixonin alkuperäinen kompleksisuusestimaatti antaa .
Harkitse muita strategioita, jotka nopeuttavat algoritmin toimintaa.
LP (Large Prime Variation) -strategia käyttää suuria alkulukuja nopeuttamaan numeroiden luontimenettelyä .
AlgoritmiKohdassa 4 löytyvä luku ei olkoon -sileä. Sitten se voidaan esittää missä ei ole jaollinen luvuilla tekijäkannasta. On selvää, että . Jos lisäksi , niin s on alkuluku ja sisällytämme sen tekijäkantaan. Tämän avulla voit löytää lisää -sileitä lukuja, mutta lisää vaadittujen sileiden lukujen määrää yhdellä. Palataksesi alkuperäiseen kerroinkantaan vaiheen 5 jälkeen toimi seuraavasti. Jos löytyy vain yksi luku, jonka laajennus sisältyy parittomaan asteeseen, tämä numero on poistettava luettelosta ja poistettava tekijäkannasta. Jos esimerkiksi on kaksi tällaista numeroa ja , ne on yliviivattava ja numero on lisättävä . Indikaattori siirtyy laajennukseen tasaisena ja se puuttuu lineaarisesta yhtälöjärjestelmästä.
Strategian muunnelmaOn mahdollista käyttää LP-strategiaa useilla alkuluvuilla, jotka eivät sisälly tekijäkantaan. Tässä tapauksessa graafiteoriaa käytetään sulkemaan pois ylimääräiset alkuluvut .
Laskennallinen monimutkaisuusPomerantsin laatima teoreettinen arvio LP-strategiaa käyttävän algoritmin monimutkaisuudesta ei poikkea Dixon-algoritmin alkuperäisen version arviosta:
.EAS (Early Break) -strategia eliminoi osan näkökohdista jättämällä suorittamatta sileystestiä .
Algoritmikiinteät valitaan . Dixonin algoritmissa se kerrotaan koejakoina . Strategiassa valitaan EAS ja luku kerrotaan ensin koejaoilla luvulla , ja jos hajoamisen jälkeen hajoamaton osa jää suuremmaksi kuin , niin annettu hylätään.
Strategian muunnelmaOn mahdollista käyttää EAS-strategiaa, jossa on useita taukoja, eli jossain nousevassa ja laskevassa järjestyksessä .
Laskennallinen monimutkaisuusDixonin algoritmi, joka käyttää EAS-strategiaa for, on arvioitu
.PS-strategia käyttää Pollard-Strassen-algoritmia , joka löytää ja löytää gcd : n lukumäärän minimialkujakajan . [kahdeksan]
AlgoritmiKiinteä on valittuna . Dixonin algoritmissa se kerrotaan koejakoina . PS-strategiassa . Me uskomme . Käytämme Pollard-Strassen-algoritmia, valitsemalla hajoamattoman osan, saamme laajennuksen .
Laskennallinen monimutkaisuusDixonin algoritmin monimutkaisuus strategialla PS on minimaalinen ja on yhtä suuri
.