Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
(09.09.2011 14:35 )GerdW schrieb: Nichts für ungut, aber das bezweifel ich! Die Q&R-Funktion (oder auch die Divide) sind dafür einfach zu langsam. Mit einem Sieb ist man da immer schneller - man muss nur genügend Speicher reservieren können.
Entschuldige meine Vermessenheit, was Du sagst leuchtet ein.
Zitat:1990 habe ich auch angefangen, an Primzahl-Algorithmen zu feilen. In den letzten 2 Jahrzehnten hat sich da einiges getan
Meine erste Berührung mit einem Rechner war 1965, es war ein "PDP8" von "Digital Equipment" mit Lochstreifeneingabe und 2k-Magnetkernspeicher. Da habe ich aus Begeisterung und als Hobby Primzahlen berechnet. Mich interessierte dabei, ob es eine Gesetzmäßigkeit gibt, wie die "Primzahldichte" mit höher werdenden Zahlen abnimmt. Weiß aber nicht mehr, was da herausgekommen ist. War vielleicht die Anzahl Primzahlen in jeder Dekade etwa konstant? Keine Ahnung.
Wikipedia (in den 60er/70er Jahren war da ja noch nicht dran zu denken) ist da sehr hilfreich: Anzahl der Primzahlen bis x ~= x/ln(x). Ist eine gute Abschätzung, um Speicher zu reservieren, in dem die Ergebnisse abgelegt werden...
(09.09.2011 21:44 )GerdW schrieb: Wikipedia (in den 60er/70er Jahren war da ja noch nicht dran zu denken) ist da sehr hilfreich: Anzahl der Primzahlen bis x ~= x/ln(x). Ist eine gute Abschätzung, um Speicher zu reservieren, in dem die Ergebnisse abgelegt werden...
Danke für den Hinweis. Man braucht das Primzahlarray und somit die Abschätzung der Arraygröße aber gar nicht, wenn, wie hier in diesem Thread, nur die Anzahl der Primzahlen ermittelt wird und nicht das Primzahlarray selbst.
Mit Deiner Anregung aus #10 habe ich es mal auf die Schnelle mit einem Sieb versucht. Bei z.B. Max = 1E6 bilde ich ein boolsches Array der Größe 1E6. Die Indizees dieses Arrays, welche Primzahlen sind, haben der Wert true, die anderen false.
Natürlich komme ich nicht auf Deinen Super-Werte, ich muss allerdings auch sagen, daß ich bei meinen PCs immer 50 Euro-CPUs von AMD nehme, oder hier:
CPU Type DualCore AMD Phenom II X2 Black Edition 555, 3200 MHz (16 x 200)
(06.09.2011 15:22 )BNT schrieb: Eingabe: Maximum Ausgabe:
- Anzahl der gefundenen Primzahlen
- Array mit den gefundenen Primzahlen
- Zeit in Sekunden, die zur Berechnung nötig waren.
Doch, doch, es wird auch ein Array mit allen Primzahlen gefordert.
Gruß, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
(11.09.2011 17:30 )jg schrieb: Doch, doch, es wird auch ein Array mit allen Primzahlen gefordert.
Hast Recht, ich dachte nur das SUB-VI in #1 macht das nicht, aber es gibt da doch einen Ausgang für das Primzahl-Array.
Dann verlängert sich meine Zeit auf ca. 20ms:
12.09.2011, 08:09 (Dieser Beitrag wurde zuletzt bearbeitet: 12.09.2011 08:13 von GerdW.)
ich habe mich auch mal versucht um komme auf 150ms bei N=1E6 meine CPU ist ein P8700 @ 2,53 GHz. Ist zwar 'nen bisschen weg von den 20ms aber die CPU ist halt auch nicht so doll.
(12.09.2011 08:09 )GerdW schrieb: P.S.:
Wenn ihr mir jetzt alle auf die Pelle rückt, muss ich mein VI wohl mal auf MultiCore trimmen - bisher läuft es nur auf einem CPU-Kern...
Das wird Dir aber nichts nützen, denn die Endwertung erfolgt selbstverständlich nach Yardstick. Das verlangt die Gerechtigkeit, es sollen auch die Habenichtse, die sich ihre CPU von Hartz IV abgespart haben, ihre Chance erhalten.
Aber trotzden wette ich: Auch bei gleichen CPUs wirst Du nicht zu schlagen sein.