Einzelnen Beitrag anzeigen

Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#65

Re: Sehr schneller Primzahl-Finder

  Alt 23. Aug 2005, 23:12
@Phantom1:

Zitat:
Primes.IndexOf(500Mio, False); ergab eine Zeit von 798ms
Delphi-Quellcode:
  while Primes[i] < 500000000 do
    Inc(I);
ergab eine Zeit von 2869ms
Gut. Probiere nun mal folgendes aus:

Delphi-Quellcode:
  J := Primes.IndexOf(500000000);
  I := Primes.IndexOf(400000000);

  StartCounter;
  while I < J do
  begin
    Primes[I];
    Inc(I);
  end;
  StopCounter;
Mache also eine Ausschnittsberechnung.

Der obige Unterschied ist erklärbar weil die Erzeugung der Bitarrays[] getrennt von der realen Berechnung der Primzahlen abläuft. Man muß sich nun die Frage gefallen lassen: "für was benötigt man nun alle Primzahlen kleiner 2^32?"

Für die Kryptrographie sind diese Primzahlen viel zu klein.
Für die mathematische Statistik/Zahlentheorie benötigt man nur die Information wieviele Primzahlen in einem Bereich existieren, also CountOfPrimes(Start, Stop).
Um eine beliebige Zahl < 2^32 auf Primzahl zu testen findet man in meinem Source ein viel schnelleres Verfahren.

Es gibt also im Grunde eigentlich keine richtig nützliche Anwendung für die vollständig berechneten Primzahlen. Das Sieb ansich ist wohl am sinnvollsten für die Zahlentheorie, aber dort benötigt man eben nicht die reale Primzahl sondern nur die Anzahl der Primzahlen innerhalb gewisser Bereiche.


Gruß Hagen
  Mit Zitat antworten Zitat