Primzahl-Algorithmus gesucht - Seite 3

Neue Frage »

HAL 9000 Auf diesen Beitrag antworten »

Zitat:
Original von reinkie
Probiere doch mal das Verfahren "Kiebartkamm" aus. Hab ich in einem Extra-Thread beschrieben.
Dann wirst du den Geschwindigkeitsvorteil spüren...

Falls du den Pseudocode

Zitat:
Streiche(1)
FOR P1 = 2 To Wurzel(Grenze)
IF IstDiesEineNochprimzahl(P1) Then
FOR P2 = P1 + 1 To Grenze
IF IstDiesEineNochprimzahl(P2)
Ergebnis = P1 * P2
IF Ergebnis > Grenze Then Exit For (Verlasse die innere Schleife)
Streiche(P1*P2)
END IF
NEXT P2
END IF
NEXT P1

meinst: Dort gibt es durch das Nachschauen keinerlei Geschwindigkeitsvorteil mehr (im Gegenteil: das Programm wird dadurch etwas ausgebremst), denn das Streichen geht ebenso schnell wie das Nachschauen. Falls du einen anderen Code meinst, bitte: Ich höre.

Den angeblichen Geschwindigkeitsvorteil deines Programms kk.exe kann ich nicht überprüfen, da deine Uraltsoftware offenbar unter Windows 10 nicht mehr lauffähig ist.

Der obige Code wird jedenfalls für in 5.3 Sekunden durchlaufen, und zwar Single-Thread auf einem Intel i7-8665U 4.2GHz (Notebook-CPU, aber im Netzbetrieb).
reinkie Auf diesen Beitrag antworten »

Die Software läuft bei mir unter Windows 10 (noch). Allerdings ist der Code in VB6 (Oberfläche) und Intel-Assembler (math.dll) geschrieben.
Ich werde bei Gelegenheit, diesen (kleinen) Teil des kk.exe in Visual-Studio VB.Net oder C# umschreiben. und hier (oder besser in dem Thread "Kiebartkamm ..." posten.
HAL 9000 Auf diesen Beitrag antworten »

Nochmal ergänzt: Mit Nachschauen "IstDiesEineNochprimzahl(P2)" (bzw. das Äquivalent dazu in meinem Code) verlangsamt sich das ganze von 5.3s auf 7.6s.

Womöglich hast du ja eine weit effizientere Methode der Kiebart-Übersetzung gefunden als meine obige Variante mit Lookup-Table (LUT) - das würde mich wirklich überraschen.

Zitat:
Original von reinkie
Die Software läuft bei mir unter Windows 10 (noch).

Ok, im XP-Kompatibiltätsmodus funktioniert es. Aber dann will das Programm irgendeinen Freischalt-Code - danke, bei solchen Zickereien verzichte ich. Schade um die verschwendete Zeit, den Mist runterzuladen.
reinkie Auf diesen Beitrag antworten »

Die Sache mit dem Freischaltcode, der momentan in dem KK.EXE steckt, tut mir leid, HAL 9000.
Ich wollte damit damals eine (interaktive) Gruppe bilden, die ich per Newsletter über weitere Neuigkeiten auf dem Primzahlsektor informieren wollte.
Ca. 100 Menschen haben bisher das KK.Exe heruntergeladen und einen Freischaltcode angefordert. Ich habe allerdings nie einen Newsletter verschickt.
HAL 9000 Auf diesen Beitrag antworten »

Na egal. Dieser Freischaltprozedur unterziehe ich mich nicht, denn meine email-Adresse kennen (soweit ich weiß) nur vier Leute hier im Board, und dabei soll es vorerst auch bleiben. Mich hatte nur interessiert, ob der fast 20 Jahre alte, sicher gut handoptimierte 32Bit-Assemblercode deines Algorithmus mithalten kann mit auf heutige Prozessoren zugeschnittenen (nur vom C++Compiler) optimierten 64Bit-Code - zumindest in der Single-Thread-Variante (Multi-Thread wäre wohl ein unfairer Vergleich).
Neue Frage »
Antworten »



Verwandte Themen

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