Rationel sigte

En rationel sigte er en generel algoritme til faktorisering af heltal til primfaktorer . Algoritmen er et specialtilfælde af den generelle talfeltsigtemetode . Selvom den er mindre effektiv end den generelle algoritme, er den konceptuelt enklere. Algoritmen kan hjælpe med at forstå, hvordan den generelle talfeltsigtemetode fungerer.

Metode

Antag, at vi forsøger at faktorisere et sammensat tal n . Vi definerer grænsen for B og grunden af ​​faktorer (som vi vil betegne med P ), mængden af ​​alle primtal mindre end eller lig med B . Vi leder derefter efter et positivt heltal z , således at både z og z+n er B -glat , det vil sige, at alle deres primtal divisorer er indeholdt i P . Vi kan derfor skrive for passende beføjelser

,

og også for passende vi har

.

Men og er modulo sammenlignelige , så ethvert sådant heltal z , som vi finder, giver et modulo multiplikationslink (mod n ) blandt alle elementer i P , dvs.

(hvor a i og b i er ikke-negative heltal.)

Når vi har genereret nok af disse forhold (normalt nok til, at antallet af sådanne forhold er lidt større end størrelsen af ​​P ), kan vi bruge lineære algebrametoder til at multiplicere disse forskellige forhold på en sådan måde, at potenserne af alle primfaktorer vender ude at være lige. Dette vil give os en sammenlignelighed af kvadrater modulo af formen a 2 ≡ b 2 (mod n ), som kan konverteres til en faktorisering af tallet n , n = gcd ( a - b , n ) × gcd ( a + b , n ). En sådan nedbrydning kan være triviel (det vil sige n = n × 1), i hvilket tilfælde man skal prøve igen med en anden kombination af forhold. Hvis vi er heldige, får vi et ikke-trivielt par divisorer af n , og algoritmen vil afslutte.

Eksempel

Lad os faktorisere tallet n = 187 ved hjælp af en rationel sigte. Lad os prøve tallet B =7, hvor mængden P  = {2,3,5,7} tjener som basis for faktorer. Det første trin er at kontrollere, om tallet n er deleligt med tal fra mængden P . Det er klart, at i det tilfælde, hvor n er delelig med en af ​​disse primtal, har vi fundet en løsning. 187 er dog ikke deleligt med 2, 3, 5 eller 7. I næste trin leder vi efter passende z- værdier , 2, 5, 9 og 56 er passende tal. De fire z- værdier giver forholdene modulo 187:

Nu kombinerer vi disse forhold på forskellige måder og ender med lige kræfter. For eksempel,

Alternativt har ligning (3) allerede den ønskede form:

Begrænsninger af algoritmen

En rationel sigte kan ligesom en generel sigte af et talfelt ikke opnå en dekomponering af tal af formen p m , hvor p er et primtal og m er et heltal. Problemet er ikke for stort - statistisk set er sådanne tal sjældne, og derudover er der en enkel og hurtig proces til at kontrollere, at et givent tal har en sådan form. Tilsyneladende er den mest elegante metode at kontrollere, om for 1 < b < log(n), ved hjælp af heltalsversionen af ​​Newtons rodmetode [2]

Det største problem er at finde tallene z , således at både z og z + n er B -glatte . For et givet B falder andelen af ​​B -glatte tal hurtigt med talstørrelsen. Så hvis n er stor (f.eks. hundrede cifre), vil det være svært eller næsten umuligt at finde nok z til at få algoritmen til at fungere. Fordelen ved den generelle talfeltsigte-algoritme er, at man skal finde jævne tal af orden n 1/ d for et positivt heltal d (normalt 3 eller 5), i stedet for orden n som krævet af denne algoritme.

Noter

  1. Bemærk, at fælles faktorer generelt ikke kan annulleres ved sammenligning, men i dette tilfælde kan de annulleres, fordi alle primtal i faktorgrundlaget er coprime til n . Se invers multiplikation i modulær aritmetik
  2. R. Crandall, J. Papadopoulos, Om implementeringen af ​​AKS-klasse primalitetstest Arkiveret 5. oktober 2012 på Wayback Machine

Litteratur