Primzahlalgorithmus- O-Notation

Neue Frage »

Struppii Auf diesen Beitrag antworten »
Primzahlalgorithmus- O-Notation
Meine Frage:
Hallo!
Und zwar beschäftige ich mich mit diesem Algorithmus zur Bestimmung ob eine Zahl prim ist oder nicht.[attach]19641[/attach] Ich verstehe auch die einzelnen Schritte und weiß warum er funktioniert etc. Leider habe ich ein Problem mit der O-Notation. Und zwar steht da, dass er Schritte benötigt... Wo kommt das her und warum bedeutet das, dass der Algorithmus eine exponentielle Komplexität hat? Außerdem verstehe ich nicht, warum der Algorithmus nur 10 Speicherplätze benötigt?

Meine Ideen:
Für Ideen wäre ich sehr dankbar!
René Gruber Auf diesen Beitrag antworten »

Irgendwie fehlt da die Angabe des Wertes , nicht wahr? verwirrt
Struppii Auf diesen Beitrag antworten »

Das ist ein Tippfehler, entschuldige. Richtig heißt es:
[attach]19645[/attach]
René Gruber Auf diesen Beitrag antworten »

Ok, kommen wir zu weiteren Kritikpunkten. Bei 4. sollte m.E. nach eher while (p<m) statt while (p<m) stehen, aber das verbuche ich mal noch unter Schreibfehler. Viel gravierender ist folgendes:

Was liefert der Algorithmus, wenn man ihn auf die Zahl loslässt: Primzahl!!! unglücklich


M.E. ist dein "Radalgorithmus" nur zu retten, wenn man eine weitere Zahl anfügt, und in der Konsequenz das im Schritt 4 durch ersetzt. Erst dadurch ist das ja wohl zugrunde liegende Konstruktionsprinzip gewahrt, dass alle die Zahlen durchläuft, die weder durch 2,3 oder 5 teilbar sind.
Struppii Auf diesen Beitrag antworten »

Das mit dem kleiner/ gleich Zeichen ist mir auch schon aufgefallen und habs geändert. Also ich kenn mich leider nicht so aus mit Algorithmen (studiere Mathe im 2. Semester), ich muss nur mein Proseminar darüber halten und bin daher mal davon ausgegangen, dass der Author schon dafür sorgt, dass der funktioniert. Und ich finde die Schritte auch logisch, also kann ich mir nicht erklären, warum da was falsches rauskommt? unglücklich
René Gruber Auf diesen Beitrag antworten »

Zitat:
Original von Struppii
also kann ich mir nicht erklären, warum da was falsches rauskommt? unglücklich

Hast du mal damit durchgerechnet, oder hast du es nicht?
 
 
Struppii Auf diesen Beitrag antworten »

Also laut der Bemerkung davor ist es so, dass wenn p eine Primzahl ist, p entweder 2,3,5 ist oder (mod 30)
Wegen diesen Abständen setzen wir ja die d's. Wenn wir jetzt setzen, sind wir aber ja wieder bei 7. Und wir haben ja schon geprüft ob 7 ein Teiler ist...
Wie kann ich denn nachrechnen? Kann ich den Algorithmus irgendwo eingeben?
René Gruber Auf diesen Beitrag antworten »

Zitat:
Original von Struppii
Wenn wir jetzt setzen, sind wir aber ja wieder bei 7.

wohl eher bei 37, 67, ...

Und genau dieser Schritt ist noch nötig! Wenn du das nicht begreifst, hast du das Konstruktionsprinzip des Algorithmus nicht verstanden.
Struppii Auf diesen Beitrag antworten »

Du hattest Recht! ich hatte das Prinzip noch nicht verstanden! Vielen, vielen Dank! Das erklärt nun auch auf jeden Fall die 10 Speicherplätze und die Schritte.
Jetzt müsste ich nur noch verstehen, warum man dann von exponentieller Zeitkomplexität spricht. Der Begriff ist im Zusammenhang mit einem Vorherigem Logerithmus gefallen, der ) Schritte benötigt. Aber da der Radalgorithmus noch mehr Schritte hat, müsste er doch auch exponentielle Zeitkomplexität haben oder?
Ich weiß, dass es etwas mit der Länge der Eingabekette zu tun hat, aber ich kann mich nicht so richtig etwas darunter vorstellen.
Vielen, vielen Dank auf jeden Fall schonmal für die Hilfe!
René Gruber Auf diesen Beitrag antworten »

Zitat:
Original von Struppii
Aber da der Radalgorithmus noch mehr Schritte hat, müsste er doch auch exponentielle Zeitkomplexität haben oder?

Da bin ich überfragt, da ich die Definition von "exponentieller Zeitkomplexität" nicht kenne. Irgendwie hätte ich von der Namensgebung her da aber eher an etwas gedacht, was sämtliche polynomiellen Komplexitäten übersteigt, was ja hier klarerweise nicht der Fall ist. verwirrt


EDIT: Ok, die Namensgebung wäre erklärbar, wenn die Bezugsgröße dieser Komplexitätsbezeichnung nicht , sondern die Bitlänge der Eingangsgröße ist. verwirrt
Struppii Auf diesen Beitrag antworten »

Zitat:
Original von René Gruber
EDIT: Ok, die Namensgebung wäre erklärbar, wenn die Bezugsgröße dieser Komplexitätsbezeichnung nicht , sondern die Bitlänge der Eingangsgröße ist. verwirrt

Könntest du das nochmal genauer erklären? Woher weiß ich denn was die Bezugsgröße ist?
René Gruber Auf diesen Beitrag antworten »

Nochmal: Ich kenne eure Definition der "exponentiellen Zeitkomplexität" nicht, ich habe nur Mutmaßungen darüber angestellt. Wie soll ich also etwas erklären, was ich nur geraten habe? Augenzwinkern

Wenn das also alles auf eine serösere Grundlage gestellt werden soll, musst du mit entsprechenden Definitionen rüberkommen.
Struppii Auf diesen Beitrag antworten »

Also alles was ich dazu noch in dem Buch gefunden hab war
[attach]19662[/attach] und [attach]19663[/attach] Und davor wurde noch gesagt, dass immer als aufgefasst werden soll. Das war aber alles seehr viel weiter vorn im Buch und hat damit soweit ich das sehen kann nichts zu tun. Mh Schade. Dann lass ich das einfach weg in meinem Vortrag...
Kai__ Auf diesen Beitrag antworten »

In dem Zusammenhang ist m.E. nach relevant, dass n unaer aufgefasst wird, und damit der Zeitbedarf exponentiell wird.

Ohne Gewaehr! Augenzwinkern
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »