Dixons algoritm

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 28 maj 2021; kontroller kräver 4 redigeringar .

Dixons  algoritm är en faktoriseringsalgoritm som i grunden använder Legendres idé , som går ut på att hitta ett par heltal och så att och

Dixons metod är en generalisering av Fermats metod .

Historik [1]

På 1920 -talet föreslog Maurice Krajczyk (1882-1957), som generaliserade Fermats teorem, att istället för att siffror skulle uppfylla ekvationen , leta efter siffror som uppfyller en mer allmän ekvation . Krajczyk märkte flera fakta användbara för att lösa. 1981 publicerade John Dickson en faktoriseringsmetod som han utvecklade med Kraitziks idéer och beräknade dess beräkningskomplexitet. [2]

Beskrivning av algoritmen [3]

  1. Gör en faktorbas bestående av alla primtal , där .
  2. Välj slumpmässigt
  3. Beräkna .
  4. Kontrollera numret för jämnhet genom provdelningar. Om är ett -jämnt tal , det vill säga, bör du komma ihåg vektorerna och : .
  5. Upprepa siffergenereringsproceduren tills jämna siffror hittas .
  6. Använd Gauss-metoden, hitta ett linjärt samband mellan vektorerna : och sätt: .
  7. Kontrollera . Om så är fallet, upprepa genereringsproceduren. Om inte, så hittas en icke-trivial nedbrytning:
Korrekthetsbevis [4]
  1. För att formeln ska vara korrekt måste summan vara jämn. Låt oss bevisa det:
  2. följer av det faktum att:

Exempel

Låt oss faktorisera antalet .

Alla hittade tal med motsvarande vektorer skrivs i tabellen.

337 23814 ett 5 0 2 0 0
430 5390 ett 0 ett 2 ett 0
519 96 5 ett 0 0 0 0
600 980 2 0 ett 2 0 0
670 125 0 0 3 0 0 0
817 39204 2 fyra 0 0 2 0
860 21560 3 0 ett 2 ett 0

När vi löser ett linjärt ekvationssystem får vi det . Sedan

Följaktligen,

.

Det blev sönderfall

Beräkningskomplexitet [5]

Beteckna med antalet heltal så att och är ett -jämnt tal, där . Från de Bruijn-Erdős sats , där . Detta innebär att varje -jämnt nummer i genomsnitt kommer att stöta på försök. För att kontrollera om ett tal är jämnt måste divisioner utföras . Enligt algoritmen är det nödvändigt att hitta ett -jämnt tal. Alltså den beräkningsmässiga komplexiteten i att hitta tal

.

Beräkningskomplexitet för Gauss-metoden från ekvationer

.

Därför är den totala komplexiteten i Dixons algoritm

.

Med hänsyn till att antalet primtal är mindre än vad som uppskattas av formeln , och att vi efter förenkling får

.

är vald på ett sådant sätt att den är minimal. Sedan ersätter vi, vi får

.

Uppskattningen som gjorts av Pomeranz på grundval av en mer rigorös sats än de Bruijn-Erdös sats [6] ger , medan Dixons ursprungliga uppskattning av komplexitet ger .

Ytterligare strategier [7]

Överväg ytterligare strategier som påskyndar driften av algoritmen.

LP strategi

LP-strategin (Large Prime Variation) använder stora primtal för att påskynda talgenereringsproceduren .

Algoritm

Låt numret som finns i punkt 4 inte vara jämnt. Då kan det representeras där inte är delbart med tal från faktorbasen. Det är uppenbart att . Om dessutom är s primtal och vi inkluderar det i faktorbasen. Detta gör att du kan hitta ytterligare -släta tal, men ökar antalet nödvändiga jämna tal med 1. För att återgå till den ursprungliga faktorbasen efter steg 5, gör följande. Om endast ett tal hittas, vars expansion ingår i udda grad, måste detta tal tas bort från listan och raderas från faktorbasen. Om det till exempel finns två sådana nummer och , måste de strykas över och numret läggas till . Indikatorn kommer att gå in i expansionen i en jämn grad och kommer att vara frånvarande i systemet med linjära ekvationer.

Variation av strategi

Det är möjligt att använda LP-strategin med flera primtal som inte ingår i faktorbasen. I det här fallet används grafteori för att utesluta ytterligare primtal .

Beräkningskomplexitet

Den teoretiska uppskattningen av komplexiteten hos algoritmen med hjälp av LP-strategin, gjord av Pomerants, skiljer sig inte från uppskattningen av den ursprungliga versionen av Dixon-algoritmen:

.

EAS-strategi

EAS-strategin (early break) eliminerar några av övervägandena genom att inte slutföra jämnhetstestet .

Algoritm

fasta väljs . I Dixons algoritm faktoriseras den genom försöksdivisioner med . I strategin väljs EAS och numret faktoriseras först genom försöksdivisioner med , och om efter sönderdelning den oupplösta delen förblir större än , så kasseras den givna.

Variation av strategi

Det är möjligt att använda en EAS-strategi med flera pauser, det vill säga med en stigande sekvens och en fallande sekvens .

Beräkningskomplexitet

Dixons algoritm som använder EAS-strategin för uppskattas

.

PS-strategi

PS-strategin använder Pollard-Strassen-algoritmen , som för och hittar den lägsta primtalsdivisorn för antalet gcds i . [åtta]

Algoritm

Fixed är valt . I Dixons algoritm faktoriseras den genom försöksdivisioner med . I PS-strategin, . Vi tror . Vi tillämpar Pollard-Strassen-algoritmen, väljer för den oupplösta delen, vi får expansionen .

Beräkningskomplexitet

Komplexiteten i Dixons algoritm med strategi PS är minimal vid och är lika med

.

Anteckningar

  1. Ishmukhametov, 2011 , sid. 115.
  2. Dixon, J.D.Asymptotiskt snabb faktorisering av heltal  // Math . Comp. : journal. - 1981. - Vol. 36 , nr. 153 . - S. 255-260 . - doi : 10.1090/S0025-5718-1981-0595059-1 . — .
  3. Cheryomushkin, 2001 , sid. 77-79.
  4. Vasilenko, 2003 , sid. 79.
  5. Cheryomushkin, 2001 , sid. 79-80.
  6. C. Pomerance. Analys och jämförelse av några heltalsfaktoreringsalgoritmer  //  HW Lenstra och R. Tijdeman, Eds., Computational Methods in Number Theory, Math Center Tracts —Del 1. Math Centrum, Amsterdam: Artikel. - 1982. - S. 89-139 . Arkiverad från originalet den 6 november 2021.
  7. Vasilenko, 2003 , sid. 81-83.
  8. Cheryomushkin, 2001 , sid. 74-75.

Litteratur