www.wikidata.de-de.nina.az
Die Probedivision ist ein Algorithmus aus dem mathematischen Teilgebiet der Zahlentheorie Der Algorithmus ermittelt einen nichttrivialen Teiler einer positiven ganzen Zahl wenn einer existiert Findet er keinen solchen Teiler so ist die vorgegebene Zahl eine Primzahl Die Probedivision ist somit sowohl ein Faktorisierungsverfahren als auch ein Primzahltest Fuhrt man die Probedivision weiter nachdem ein nichttrivialer Teiler gefunden wurde so kann man letztendlich die Primfaktorzerlegung einer naturlichen Zahl ermitteln In der Regel benutzt man dieses Verfahren nur als Faktorisierungsverfahren um Primfaktoren bis zu einer gewissen Schranke zu finden Man spricht dann von unvollstandiger Probedivision Inhaltsverzeichnis 1 Funktionsweise 2 Beispiel 3 Varianten 4 Implementierungsdetails 5 Laufzeit 6 EinsatzbereicheFunktionsweise BearbeitenBei der Probedivision werden die Faktoren einer Zahl n displaystyle n nbsp gesucht indem man n displaystyle n nbsp der Reihe nach durch jede Primzahl p displaystyle p nbsp bei der 2 beginnend dividiert und dadurch uberpruft ob p displaystyle p nbsp ein Faktor von n displaystyle n nbsp ist Wenn ja ersetzt man n displaystyle n nbsp durch die Zahl n p displaystyle n p nbsp und dividiert diese erneut durch p displaystyle p nbsp Wenn nein geht man zur nachstgrosseren Primzahl p displaystyle p nbsp uber Dies macht man solange bis p displaystyle p nbsp grosser als die Quadratwurzel von n geworden ist Die verbleibende Zahl n ist dann entweder 1 oder eine Primzahl und damit der letzte Faktor der gegebenen Zahl da n displaystyle n nbsp zum einen durch keine Zahl kleiner oder gleich n displaystyle sqrt n nbsp teilbar ist diese wurden schon abdividiert und zum anderen das Produkt zweier Zahlen grosser n displaystyle sqrt n nbsp auch grosser als n displaystyle n nbsp selbst ist Im Falle der unvollstandigen Probedivision verfahrt man genauso nur mit dem Unterschied dass man bereits bei einer vorgegebenen Schranke S aufhort Der verbleibende Faktor muss in diesem Fall nicht mehr unbedingt ein Primfaktor sein Beispiel BearbeitenUm die Zahl 1746 zu faktorisieren teilt man diese zuerst durch 2 und erhalt 873 Ein weiteres Mal lasst sich diese Zahl nicht durch 2 teilen Somit geht man uber zur 3 Durch diese kann man wieder teilen und bekommt 291 Diese Zahl lasst sich nochmal durch 3 teilen und man bekommt 97 die nicht mehr durch 3 teilbar ist Danach versucht man noch erfolglos durch die Zahlen 5 und 7 zu teilen Die nachste Primzahl 11 ist aber schon grosser als die Wurzel aus 97 weshalb man an dieser Stelle abbricht und die Primfaktorzerlegung angeben kann 1746 2 32 97 Varianten BearbeitenFur die Probedivision benotigt man eine Liste mit kleinen Primzahlen die man gewohnlich uber das Sieb des Eratosthenes erzeugt Dies ist insbesondere dann praktisch wenn man mehrere etwa gleich grosse Zahlen faktorisieren mochte Einige Varianten der Probedivision kommen ohne diese Liste aus Eine Moglichkeit ist es nicht nur mit den Primzahlen eine Probedivision durchzufuhren sondern mit allen Zahlen ausser der 1 Das Ergebnis ist das gleiche aber es werden uberflussige Divisionen durchgefuhrt Einige dieser uberflussigen Divisionen kann man vermeiden wenn man nur noch mit der 2 und den ungeraden Zahlen eine Probedivision durchfuhrt Diese Idee lasst sich noch weiter verallgemeinern indem man sich auf alle Zahlen die kongruent 1 oder 5 modulo 6 oder alle Zahlen die kongruent 1 7 11 13 17 19 23 oder 29 modulo 30 sind beschrankt Im ersten Fall muss man noch zusatzlich die Zahlen 2 und 3 probieren im zweiten Fall die Zahlen 2 3 und 5 Nimmt man allgemein die ersten n Primzahlen pi so lasst sich mit i 1 n p i 1 displaystyle prod i 1 n p i 1 nbsp ein Intervall von i 1 n p i displaystyle prod i 1 n p i nbsp Zahlen durchsuchen Fur die ersten 4 Primzahlen 2 3 5 7 bedeutet das dass 2 1 3 1 5 1 7 1 48 Tests ausreichen um ein Intervall mit 2 3 5 7 210 Teilern abzuarbeiten Der Vorteil liegt darin dass ein solches Programm ohne grosse Primzahltabellen auskommt Da in einem Intervall von 210 Zahlen die Abstande der notwendigen Teiler fest sind genugt eine Tabelle von 48 kleinen Zahlen das Inkrement fur den nachsten Teiler zu berechnen Implementierungsdetails BearbeitenMochte man die Probedivision in einem Computerprogramm benutzen so wird man aus Speicherplatzgrunden die Liste der Primzahlen entweder als Bit Array speichern oder alternativ dazu immer die Halfte der Differenz dieser Primzahl zur vorhergehenden Primzahl In letzterem Fall benotigt man fur jede Primzahl bis 1 872 851 947 nur ein Byte Speicherplatz pro Primzahl Anstatt zu uberprufen ob p grosser als die Wurzel aus n ist testet man ob p2 grosser als n ist da dies schneller geht Im Falle der Variante bei der nur noch Zahlen probiert werden die kongruent 1 oder 5 modulo 6 sind kann man diese Zahlen effizient durchlaufen indem man abwechselnd 2 und 4 zur vorherigen Zahl addiert Laufzeit BearbeitenDie Probedivision benotigt im schlimmsten Fall etwa 2 n ln n displaystyle 2 tfrac sqrt n ln n nbsp Divisionen In den Varianten die ohne eine Primzahlliste auskommen ist die Anzahl der Divisionen im schlechtesten Fall c n displaystyle c sqrt n nbsp wobei die Konstante c vom Verfahren abhangt Die mittlere Laufzeit liegt in der gleichen Grossenordnung wie beim schlechtesten Fall Einsatzbereiche BearbeitenDie unvollstandige Probedivision wird oftmals benutzt um einen ersten Uberblick uber die Faktorisierung einer Zahl zu gewinnen Erst wenn diese nicht in der Lage ist die Zahl vollstandig zu faktorisieren geht man uber zu komplexeren Faktorisierungsverfahren Ausserdem wird die Probedivision oftmals als Teilschritt in komplexeren Faktorisierungsverfahren benotigt Abgerufen von https de wikipedia org w index php title Probedivision amp oldid 191963357