Dixonin algoritmi

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 28.5.2021 tarkistetusta versiosta . tarkastukset vaativat 4 muokkausta .

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ä .

Historia [1]

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]

Algoritmin kuvaus [3]

  1. Tee kaikista alkuluvuista koostuva tekijäkanta , jossa .
  2. Valitse satunnainen
  3. Laske .
  4. Tarkista numeron tasaisuus kokeilujakoittain. Jos on -tasainen luku , eli sinun tulee muistaa vektorit ja : .
  5. Toista numeroiden luontitoimenpide, kunnes -tasaisia ​​lukuja löytyy .
  6. Etsi Gaussin menetelmällä lineaarinen suhde vektorien välillä : ja laita: .
  7. Tarkista . Jos näin on, toista luontimenettely. Jos ei, niin ei-triviaali hajoaminen löytyy:
Oikeustodistus [4]
  1. Jotta kaava olisi oikea, summan on oltava parillinen. Todistetaan se:
  2. seuraa siitä tosiasiasta, että:

Esimerkki

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

Laskennallinen monimutkaisuus [5]

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 .

Lisästrategiat [7]

Harkitse muita strategioita, jotka nopeuttavat algoritmin toimintaa.

LP-strategia

LP (Large Prime Variation) -strategia käyttää suuria alkulukuja nopeuttamaan numeroiden luontimenettelyä .

Algoritmi

Kohdassa 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 muunnelma

On 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 monimutkaisuus

Pomerantsin laatima teoreettinen arvio LP-strategiaa käyttävän algoritmin monimutkaisuudesta ei poikkea Dixon-algoritmin alkuperäisen version arviosta:

.

EAS-strategia

EAS (Early Break) -strategia eliminoi osan näkökohdista jättämällä suorittamatta sileystestiä .

Algoritmi

kiinteä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 muunnelma

On mahdollista käyttää EAS-strategiaa, jossa on useita taukoja, eli jossain nousevassa ja laskevassa järjestyksessä .

Laskennallinen monimutkaisuus

Dixonin algoritmi, joka käyttää EAS-strategiaa for, on arvioitu

.

PS-strategia

PS-strategia käyttää Pollard-Strassen-algoritmia , joka löytää ja löytää gcd : n lukumäärän minimialkujakajan . [kahdeksan]

Algoritmi

Kiinteä on valittuna . Dixonin algoritmissa se kerrotaan koejakoina . PS-strategiassa . Me uskomme . Käytämme Pollard-Strassen-algoritmia, valitsemalla hajoamattoman osan, saamme laajennuksen .

Laskennallinen monimutkaisuus

Dixonin algoritmin monimutkaisuus strategialla PS on minimaalinen ja on yhtä suuri

.

Muistiinpanot

  1. Ishmukhametov, 2011 , s. 115.
  2. Dixon, J.D.Asymptoottisen nopea kokonaislukujen tekijöihin jako  // Math . Comp. : päiväkirja. - 1981. - Voi. 36 , ei. 153 . - s. 255-260 . - doi : 10.1090/S0025-5718-1981-0595059-1 . — .
  3. Cheryomushkin, 2001 , s. 77-79.
  4. Vasilenko, 2003 , s. 79.
  5. Cheryomushkin, 2001 , s. 79-80.
  6. C. Pomerance. Joidenkin kokonaislukufaktorointialgoritmien analyysi ja vertailu  //  HW Lenstra ja R. Tijdeman, toim., Computational Methods in Number Theory, Math Center Tracts — Part 1. Math Centrum, Amsterdam : Artikkeli. - 1982. - S. 89-139 . Arkistoitu alkuperäisestä 6. marraskuuta 2021.
  7. Vasilenko, 2003 , s. 81-83.
  8. Cheryomushkin, 2001 , s. 74-75.

Kirjallisuus