Dixons algoritme

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 28. maj 2021; checks kræver 4 redigeringer .

Dixons  algoritme er en faktoriseringsalgoritme , der grundlæggende bruger Legendres idé , som består i at finde et par heltal og sådan, at og

Dixons metode er en generalisering af Fermats metode .

Historie [1]

I 1920'erne foreslog Maurice Krajczyk (1882-1957), der generaliserede Fermats teorem, i stedet for talpar, der opfylder ligningen , at kigge efter talpar, der opfylder en mere generel ligning . Krajczyk bemærkede flere fakta, der var nyttige til at løse. I 1981 udgav John Dickson en faktoriseringsmetode, som han udviklede ved hjælp af Kraitziks ideer og beregnede dens beregningsmæssige kompleksitet. [2]

Beskrivelse af algoritmen [3]

  1. Lav en faktorbase bestående af alle primtal , hvor .
  2. Vælg tilfældigt
  3. Beregn .
  4. Kontroller tallet for jævnhed ved prøveopdelinger. Hvis er et -glat tal , det vil sige , skal du huske vektorerne og : .
  5. Gentag talgenereringsproceduren, indtil der findes jævne tal .
  6. Brug Gauss-metoden til at finde en lineær sammenhæng mellem vektorerne : og læg: .
  7. Tjek . Hvis det er tilfældet, så gentag genereringsproceduren. Hvis ikke, så findes en ikke-triviel nedbrydning:
Korrekthedsbevis [4]
  1. For at formlen er korrekt, skal summen være lige. Lad os bevise det:
  2. følger af, at:

Eksempel

Lad os faktorisere tallet .

Alle de fundne tal med de tilsvarende vektorer er skrevet i tabellen.

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

Ved at løse et lineært ligningssystem får vi det . Derefter

Følgelig,

.

Det viste sig nedbrydning

Beregningsmæssig kompleksitet [5]

Betegn med antallet af heltal sådan, at og er et -glat tal, hvor . Fra de Bruijn-Erdős sætning , hvor . Det betyder, at hvert -glat tal i gennemsnit vil komme på tværs af forsøg. For at kontrollere, om et tal er -glat, skal der udføres divisioner . Ifølge algoritmen er det nødvendigt at finde et -glat tal. Altså den beregningsmæssige kompleksitet ved at finde tal

.

Beregningsmæssig kompleksitet af Gauss-metoden ud fra ligninger

.

Derfor er den samlede kompleksitet af Dixons algoritme

.

Under hensyntagen til, at antallet af primtal er mindre end estimeret af formlen , og at vi efter forenkling får

.

er valgt på en sådan måde, at den er minimal. Så erstatter vi, får vi

.

Estimatet lavet af Pomeranz på grundlag af en mere stringent sætning end de Bruijn-Erdös sætning [6] giver , mens Dixons oprindelige estimat af kompleksitet giver .

Yderligere strategier [7]

Overvej yderligere strategier, der fremskynder driften af ​​algoritmen.

LP strategi

LP-strategien (Large Prime Variation) bruger store primtal til at fremskynde talgenereringsproceduren .

Algoritme

Lad tallet fundet i punkt 4 være ujævnt. Så kan det repræsenteres hvor er ikke deleligt med tal fra faktorgrundlaget. Det er åbenlyst . Hvis derudover , så er s primtal, og vi inkluderer det i faktorgrundlaget. Dette giver dig mulighed for at finde yderligere -glatte tal, men øger antallet af nødvendige glatte tal med 1. For at vende tilbage til den oprindelige faktorbase efter trin 5, gør følgende. Findes der kun ét tal, hvis udvidelse indgår i ulige grad, så skal dette tal slettes fra listen og slettes fra faktorgrundlaget. Hvis der for eksempel er to sådanne numre og , så skal de streges over og tallet tilføjes . Indikatoren vil gå ind i udvidelsen i en jævn grad og vil være fraværende i systemet af lineære ligninger.

Variation af strategi

Det er muligt at bruge LP-strategien med flere primtal, der ikke er indeholdt i faktorbasen. I dette tilfælde bruges grafteori til at udelukke yderligere primtal .

Beregningsmæssig kompleksitet

Det teoretiske skøn over kompleksiteten af ​​algoritmen ved hjælp af LP-strategien, lavet af Pomerants, adskiller sig ikke fra estimatet af den originale version af Dixon-algoritmen:

.

EAS-strategi

EAS-strategien (early break) eliminerer nogle af overvejelserne ved ikke at fuldføre glathedstesten .

Algoritme

faste er valgt . I Dixons algoritme er det faktoriseret ved forsøgsdivisioner med . I strategien vælges EAS, og tallet faktoriseres først ved forsøgsdivisioner med , og hvis den udekomponerede del efter nedbrydning forbliver større end , så kasseres den givne.

Variation af strategi

Det er muligt at bruge en EAS-strategi med flere pauser, det vil sige med en stigende sekvens og en faldende sekvens .

Beregningsmæssig kompleksitet

Dixons algoritme ved hjælp af EAS-strategien for er estimeret

.

PS-strategi

PS-strategien bruger Pollard-Strassen-algoritmen , som for og finder den mindste prime divisor af antallet af gcd'er i . [otte]

Algoritme

Fixed er valgt . I Dixons algoritme er det faktoriseret ved forsøgsdivisioner med . I PS-strategien . Vi tror . Vi anvender Pollard-Strassen-algoritmen, idet vi vælger den usammensatte del, vi opnår udvidelsen .

Beregningsmæssig kompleksitet

Kompleksiteten af ​​Dixons algoritme med strategi PS er minimal ved og er lig med

.

Noter

  1. Ishmukhametov, 2011 , s. 115.
  2. Dixon, J.D.Asymptotisk hurtig faktorisering af heltal  // Matematik . Comp. : journal. - 1981. - Bd. 36 , nr. 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. Analyse og sammenligning af nogle heltalsfaktoreringsalgoritmer  //  HW Lenstra og R. Tijdeman, red., Computational Methods in Number Theory, Math Center Tracts —Del 1. Math Centrum, Amsterdam: Artikel. - 1982. - S. 89-139 . Arkiveret fra originalen den 6. november 2021.
  7. Vasilenko, 2003 , s. 81-83.
  8. Cheryomushkin, 2001 , s. 74-75.

Litteratur