Formelsammlung für Mathematik, Physik, Astronomie, Chemie, Biologie und Informatik
Goldbarren kaufen
  Startseite Formelsammlung bookmarken Bookmark setzen Sitemap anzeigen Sitemap Impressum anzeigen Impressum
 
» Formelsammlung:
» Startseite
» Astronomie
» Biologie
» BWL
» Chemie
» Informatik
» Mathematik
» Physik

» Interaktiv:
» Forum
» Lexikon
» Mitmachen
» Links zu Uns
» Surftipps

» Informationen:
» Kontakt
» Impressum
» Über Formel-Sammlung.de

» Partnerseiten:
  www.schuelerlexikon.de

» Partner:
  Etiketten
Kostenlose Kochrezepte
Künstler Verzeichnis
Schilder
Spieleforum
Witze & SMS Sprüche

Fermatscher Primzahltest



Sie befinden Sie in: Formelsammlung Lexikon > f > Fermatscher Primzahltest
Fermatscher Primzahltest


Mit dem fermatschen Primzahltest - entwickelt von dem "Freizeitmathematiker" Pierre de Fermat ? kann man aussagen, ob eine Zahl mit hoher Wahrscheinlichkeit eine Primzahl ist. Daher wird dieses Verfahren auch PRP-Test (= probable prime) genannt.

Inhaltsverzeichnis
1 Anwendung des Kleinen Fermatschen Satzes
2 Pseudoprimzahlen

2.1 Carmichael-Zahlen

3 Was kann man tun wenn man 100% sichere Ergebnisse bekommen will
4 Der Weg zum propabilistischen Primzahltest

4.1 Suche mit nur einer Basis, bei zufälliger Auswahl der zu testenden Zahl
4.2 Breitensuche mit zufälliger Auswahl einer oder mehrerer Basen (mit möglicher zufälliger Auswahl, der zu testenden Zahl)

5 Verbesserungen des Fermatschen Primzahltests
6 Literatur

 

Anwendung des Kleinen Fermatschen Satzes

Direkt aus dem Kleinen Fermatschen Satz folgt:

Ist p eine Primzahl, dann ist np - 1 - 1 durch p teilbar für alle natürlichen Zahlen n < p.

Dies kann man mit Hilfe der Modulo-Funktion schreiben als:

Für alle Primzahlen p gilt a^{p-1} - 1 \mod p = 0 mit 2 \le a < p.

oder auch:

Für alle Primzahlen p gilt a^{p-1} \mod p = 1 mit 2 \le a < p.


Beispiel: p = 5 ist eine Primzahl

a=2 25 - 1 - 1 = 15 wobei 15 durch 5 teilbar ist
a=3 35 - 1 - 1 = 80 wobei 80 durch 5 teilbar ist
a=4 45 - 1 - 1 = 255 wobei 255 durch 5 teilbar ist


Gegenbeispiel: p = 55 ist keine Primzahl, denn für n = 2 gilt:

2^{55-1} \mod 55 = 2^{54} \mod 55 = ((2^{27} \mod 55)^2) \mod 55 = 49 ungleich 1

Das bedeutet, das die Zahl p = 55 ist keine Primzahl ist.

Würde für alle natürlichen Zahlen q mit q > 2 folgende Formel gelten:

n^{q-1} \mod q = 1 

Wenn jetzt zutreffen würde, dass q dann auch eine Primzahl ist, dann hätte man ein prima Verfahren zum Testen auf Primzahlen. Dass dem nicht so ist, daran sind die Pseudoprimzahlen schuld.

 

Pseudoprimzahlen

Es gibt Zahlen q, die keine Primzahlen sind und für die dennoch gilt:

nq - 1 - 1 durch q teilbar für bestimmte natürlichen Zahlen n < q, bei denen n kein Teiler von q ist.

Solche Zahlen heißen Pseudoprimzahlen.

Beispiel: q = 21 ist eine Pseudoprimzahl, da für n = 13 gilt

13^{21-1} \mod 21 = 13^{20} \mod 21 = ((13^{10} \mod 21)^2) \mod 21 = 1

obwohl 21 eine zusammengesetzte Zahl der Form 3*7 ist.


 

Carmichael-Zahlen

Besonders hartnäckige Pseudoprimzahlen sind dabei die Carmichael-Zahlen, für die gilt, das alle Basen n mit 1 < n < q, die nicht Teiler von q sind:

n^{q-1} \mod q = 1 (für alle n teilerfremd zu q)

Als Beispiel dafür die 561 (sie ist die kleinste Carmichael-Zahl):

Basis 3: 3^{560} \mod 561 = ((2^{280} \mod 561)^2)\mod 561 = 375
Basis 11: 11^{560} \mod 561 = ((2^{280} \mod 561)^2)\mod 561 = 154
Auch für die Basen 17, 33, 51 und 187, die alle Teiler von 561 sind, gilt, das die Zahl 561 keine Primzahl ist.
Für alle anderen Basen, die keine Teiler von 561 sind, gilt:
n^{560} \mod 561 = ((a^{280} \mod 561)^2) \mod 561 = 1

 

Was kann man tun wenn man 100% sichere Ergebnisse bekommen will

Wenn man nur auf die Basis 2 testet, dann kann man nur bis 340 sicher sein, das man zu 100% ein korrektes ergebnis kommt. Wenn man parallel auf mehrere Basen (zum Beispiel 2, 3 und 5) testet, erhöht sich die sichere Grenze nach oben:

Bei 2 und 3 liegt die sichere Grenze bei 2700, bei 2,3,5,7 und 11 liegt sie bei 29340, und bei 2, 3, 5, 7, 11 und 13 liegt sie bei 162401. Leider macht jede weitere Basis ein Programm langsamer. Wenn man konsequent auf alle Basen testet, bekommt man zwar ein Programm, das zu 100% sichere Primzahlen zurückliefert, aber viel langsamer als ein Program ist, das eine Zahl konsequent auf alle möglichen Teiler testet.

Quellcode

 

Der Weg zum propabilistischen Primzahltest


Man kann nun versuchen, diesen Test zu vereinfachen und den Rechenaufwand deutlich zu reduzieren, wenn man eine etwas geringere Wahrscheinlichkeit in der Primzahlaussage in Kauf nimmt.

Dabei gibt es zwei Aspekte:

 

Suche mit nur einer Basis, bei zufälliger Auswahl der zu testenden Zahl

Wenn man nur eine Basis nimmt, vorzugsweise die Basis 2, dann hat man eine relativ geringe Wahrscheinlichkeit, aber den Umstand, dass wenn man schon fälschlich eine Pseudoprimzahl wie 341 trifft, dass diese zu 100% falsch ist, auch wenn die Wahrscheinlichkeit auf die 341 zu treffen nur gering ist. Jedesmal, wenn man auf 341 prüft, wird der kleine Fermatsche Satz in der Kombination mit 341 und Basis 2 das Urteil "Primzahl" zurückgeben.

Wenn man, anstelle von a^{n-1} \equiv 1 \mod n auf a^{\frac{n-1}{2}} \equiv 1 \mod n und a^{\frac{n-1}{2}} \equiv (n-1) \mod n prüft, hat man zwar statt einem Fall zwei Fälle zu unterscheiden, aber die Zahl der möglichen Pseudoprimzahlen veringert sich.

 

Breitensuche mit zufälliger Auswahl einer oder mehrerer Basen (mit möglicher zufälliger Auswahl, der zu testenden Zahl)

Der andere Aspekt ist die Prüfung in der Breite. Bezogen auf die 68 möglichen Primzahlbasen, liefern 21 Primbasen für die 341 fälschlich das Ergebnis "Primzahl" zurück. Das ist ein bisschen weniger als 1/3.

Hier würde eine Verwendung der Eulerschen Formel anstelle des kleinen Fermat zu einer Verringerung der fälschlich zurückliefernden Primbasen führen. Wo beim kleinen Fermat zur Pseudoprimzahl 91 noch 8 Primbasen (3, 17, 23, 29, 43, 53, 61 und 79) fälschlich eine Primzahl melden, sind es bei der Eulerschen Formel noch die Hälfte (17, 29, 53 und 79). Das verbessert einen propabilistischen Ansatz erheblich.

Im Fall der Carmichael-Zahl 561 lügen 99 von 102 Primzahlbasen. Bei größeren Carmichaelzahlen, die oft aus nicht viel mehr Primfaktoren zusammengesetzt sind, wird das Missverhältnis noch extremer. Darum vermeiden bessere propabilistische Primzahltests das Problem der Carmichael-Zahlen.

Hier eine Tabelle von besonders guten Pseudoprimzanlen (die keine Carmichael-Zahlen sind). Die 15 ist aufgeführt, weil sie die erste Pseudoprimzahl ist, und die 91 ist in ihrer Umgebung eine relativ gute Pseudoprimzahl.


Pseudoprimzahl A B C Primfaktoren
15 6 1 83,33% 3 * 5
91 24 8 66,67% 7 * 13
703 126 56 55,56% 19 * 37
1891 290 139 52,07% 31 * 61
2701 393 191 51,4% 37 * 73
11305 1366 667 50,44% 5 * 7 * 17 * 19
12403 1480 739 50,07% 79 * 157
13981 1650 815 50,06% 11 * 31 * 41
18721 2137 1070 49,93% 97 * 193


A: Anzahl der Primzahlen zwischen 2 und der entsprechenden Pseudoprimzahl
B: Anzahl der Primzahlen aus A die fälschlich behaupten, die entsprechende Pseudoprimzahl sei eine Primzahl
C: Die Wahrscheinlichkeit, bei Auswahl einer Primzahlbasis eine der nicht lügenden zu erwischen

Bei den Carmichael-Zahlen geht die Wahrscheinlichkeit, eine der nichtlügenden Primzahlbasen zu erwischen gegen 0.

Wenn man zufällig mehrere Primzahlbasen auswählt, dann steigt die Wahrscheinlichkeit, Pseudoprimzahlen als solche zu entlaven:

Anzahl der testenden Primzahlbasen

1 2 3 4 5
91 83,33% 89,86% 97,23% 99,34% 99,86%
561 2,94% 5,82% 8,65% 11,42% 14,13%
703 55,56% 80,44% 91,48% 96,33% 98,44%
1729 1,11% 2,22% 3,32% 4,41% 5,49%
1891 52,07% 77,11% 89,11% 94,85% 97,56%


Für die Praxis bedeutet das: Oft reicht der Nachweis aus, dass p pseudoprim ist zur Basis 2. Will man die Sicherheit weiter erhöhen, dann muss man eben weitere Zeugen finden, d.h. weitere Zahlen a, zu deren Basis p pseudoprim ist.
Im Grenzfall testet man alle Zahlen a < p, d.h. man führt den gesamten Fermattest durch.


 

Verbesserungen des Fermatschen Primzahltests

Gary Miller und Michael O. Rabin verbesserten den Fermattest im so genannten Miller-Rabin-Test. Nicht-Primzahlen erkennt er mit Sicherheit, Primzahlen mit Wahrscheinlichkeit 1/2. Eine k-malige Widerholung des Tests verringert die Irrtumswahrscheinlichkeit auf 1/2^k.

Im Jahre 1980 stellten die Mathematiker Leonard M. Adleman, R.S. Rumely, H. Cohen und H.W. Lenstra Jr den nach ihnen benannten ARCL-Test vor. Dieser ist eine Weiterentwicklung des Fermatschen Primzahltests, indem er Carmichael-Zahlen erkennt.

 

Literatur

  • C.Pomerance,J.L.Selfridge, S.S.Wagstaff Jr., "The pseudoprimes to 25 · 109," Math. Comp., 35:151 (1980) 1003-1026.
  • Paolo Ribenboim, The new Book of Prime Number Records, (1996) Springer Verlag

Lexikon Eintrag Drucken | Dokument als PDF downloaden
Dieser Artikel stammt aus Wikipedia, der freien Enzyklopädie
und steht unter der GNU Free Documentation Licence. 

zum Seitenanfang

» Formel Suche:
  Gebe einfach den Gesuchten Begriff ein.
 
 
» Unterstüzt von:
Duden Paetec Schulbuchverlage

zum Formelsammlung Forum

» Anzeigen:
 
 
       
Diese Seite wurde in 0.007 Sekunden erstellt - 20 Besucher Online.
© 2004 by Formel-Sammlung.de & DUDEN PAETEC GmbH Alle Rechte vorbehalten