Bachs algoritm

Bachs algoritm är en probabilistisk polynomtidsalgoritm för att generera slumptal tillsammans med deras faktoriseringar , uppkallad efter dess upptäckare, Eric Bach . Det är av intresse eftersom ingen algoritm är känd som effektivt faktoriserar tal, så den enkla metoden, nämligen att generera ett slumptal och sedan faktorisera det, är opraktisk.

Algoritmen utför, i förväntan, O(log n) primatitetstester .

En enklare, men mindre effektiv algoritm (som i förväntan utför primatitetstester), beror på Adam Kalai .

Översikt

Bachs algoritm producerar ett nummer likformigt slumpmässigt i intervallet (för en given ingång , längs med dess faktorisering. Den gör detta genom att välja ett primtal och en exponent så att , enligt en viss fördelning. Algoritmen genererar sedan rekursivt ett tal i området , där , tillsammans med faktoriseringen av . Den sätter sedan och lägger till till faktoriseringen av för att producera faktoriseringen av . Detta ger med logaritmisk fördelning över det önskade området; avslagsprovtagning används sedan för att få en enhetlig fördelning.

Vidare läsning

  • Bach, Eric . Analytic methods in the Analysis and Design of Number-Theoretic Algorithms , MIT Press, 1984. Kapitel 2, "Generation of Random Factorizations", varav en del är tillgänglig online här .