Miller-Rabin-Test
aus Wikipedia, der freien Enzyklopädie
Der Miller-Rabin-Test (auch Miller-Selfridge-Rabin-Test) ist ein Algorithmus aus dem mathematischen Teilgebiet Zahlentheorie, insbesondere der algorithmischen Zahlentheorie. Er ist ein probabilistischer Primzahltest. Erhält er eine natürliche Zahl n als Eingabe, so gibt er aus, ob diese Zahl eine Primzahl ist oder nicht. Gibt er dabei „n ist keine Primzahl“ aus, so ist das richtig. Gibt er allerdings „n ist eine Primzahl“ aus, so ist dies mit geringer Wahrscheinlichkeit falsch. Die Zahlen, die der Miller-Rabin-Test falscherweise als Primzahlen identifiziert, nennt man starke Pseudoprimzahlen. Da der Algorithmus nicht immer ein korrektes Ergebnis liefert, zählt er zur Klasse der Monte-Carlo-Algorithmen.
Die Miller-Rabin-Test ist nach Gary Miller und Michael O. Rabin benannt. John L. Selfridge hat diesen Test schon 1974 verwendet, bevor Miller ihn veröffentlicht hatte. Daher rührt der alternative Name Miller-Selfridge-Rabin-Test. [1]
Der Test basiert auf einem Satz von Miller, der eine Zahl mit hoher Sicherheit korrekt als Primzahl erkennt. Der Miller-Rabin-Test funktioniert ähnlich wie der Solovay-Strassen-Test.
Inhaltsverzeichnis |
[Bearbeiten] Vorgehensweise
Es sei n diejenige Zahl, von der festgestellt werden soll, ob sie eine Primzahl ist oder nicht.
- Zuerst wird eine beliebige Zahl a mit 1 < a < n als Basis gewählt.
- Der nächste Schritt benutzt einen Test, den nur Primzahlen und starke Pseudoprimzahlen überstehen können:
- Wenn
oder
für ein r mit
gilt, wobei d den nicht durch die Zahl 2 dividierbaren Rest von
darstellt, d.h.
teilt n − 1}, dann muss n entweder eine Primzahl oder aber eine starke Pseudoprimzahl sein.
[Bearbeiten] Zuverlässigkeit
Ist ungerade und nicht prim, so enthält die Menge
höchstens
Elemente a, ggT(a,n) = 1 die kein Zeuge für die Zusammengesetztheit von n sind. Damit ist die Wahrscheinlichkeit, dass n zusammengesetzt ist und ein zufälliges a dafür kein Zeuge ist, höchstens
.
Wiederholt man den Test mehrfach für verschiedene a sinkt die Wahrscheinlichkeit entsprechend ab. So erreicht man beispielsweise schon nach vier Schritten, die das Ergebnis "wahrscheinlich prim" haben, eine Fehlerwahrscheinlichkeit von weniger als 0,5%.
[Bearbeiten] Quellen
- ↑ Song Y. Yan: Number theory for computing. 2. Auflage. Springer, 2002, ISBN 3-540-43072-5, S. 208-214