AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Sieb des Eratosthenes

Ein Thema von Amateurprofi · begonnen am 3. Jun 2013 · letzter Beitrag vom 5. Jun 2013
Antwort Antwort
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.041 Beiträge
 
Delphi XE2 Professional
 
#1

Sieb des Eratosthenes

  Alt 3. Jun 2013, 00:06
Dieser Beitrag http://www.delphipraxis.net/1213282-post18.html hat mich neugierig gemacht,
und dieser http://www.delphipraxis.net/1215236-post28.html hat mich dann dazu gebracht, mich auch mal ein wenig mit diesem Thema zu beschäftigen.

Tja, "ein wenig" ist untertrieben, ich kam vom hundertsten zum tausendsten, aber ich denke das Ergebnis ist ganz brauchbar,
auch wenn ich mit dem Zeitverhalten bei der Sieberstellung noch nicht so ganz zufrieden bin - etwas bummelig für meinen Geschmack.

Im Anhang sind eine 32 Bit Version und eine 64 Bit Version meines Programms sowie drei Help-Dateien, Help.docx, Help.pdf, Help.mht,
die über die Hilfe Funktion des Programms aufrufbar sind, solange sie sich im selben Verzeichnis befinden, wie die .exe.
Die Help Dateien sind inhaltlich identisch - aber jeder hat ja seine persönlichen Vorlieben.

Die 32 Bit Version kann Siebe bis max 2 ^ 32 - 1 erstellen, die 64 Bit Version bis 200 Giga - wenn genug Ram verfügbar ist.

Ich habe mich bemüht, alle Fehler zu finden - da ich aber weiß, wo die Juckepunkte sind, habe ich mich auf diese konzentriert und wahrscheinlich die simpelsten Ungereimtheiten übersehen.
Wer also Fehler findet, bitte Info in diesem Thread oder als PN.

Ich empfehle, die Help-Datei zumindest querzulesen.
Angehängte Dateien
Dateityp: zip PrimeSieve.zip (1,78 MB, 35x aufgerufen)
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
Horst_

Registriert seit: 22. Jul 2004
Ort: Münster Osnabrück
116 Beiträge
 
#2

AW: Sieb des Eratosthenes

  Alt 3. Jun 2013, 06:37
Hallo,

ich habe gerade die 32-Bit Version Primesieve32 ( Win7 ) getestet und erhalte:
Schon beim Start "External Exception C0000001D"
Bei MAX = 1e9 passiert das scheinbar mit jeder neuen Siebzahl, die beim Sieben eingeblendet wird, aber auch wenn ich das Tausender-Trennzeichen umstelle. Dubios das.
http://www.delphigroups.info/2/56/526165.html
Ohne Sourcen mußt Du es wohl selbst entdecken

Gruß Horst
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#3

AW: Sieb des Eratosthenes

  Alt 3. Jun 2013, 07:25
Keine Quellen? Wozu dann das Ganze?
  Mit Zitat antworten Zitat
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.041 Beiträge
 
Delphi XE2 Professional
 
#4

AW: Sieb des Eratosthenes

  Alt 3. Jun 2013, 12:48
Hallo,

ich habe gerade die 32-Bit Version Primesieve32 ( Win7 ) getestet und erhalte:
Schon beim Start "External Exception C0000001D"
Bei MAX = 1e9 passiert das scheinbar mit jeder neuen Siebzahl, die beim Sieben eingeblendet wird, aber auch wenn ich das Tausender-Trennzeichen umstelle. Dubios das.
http://www.delphigroups.info/2/56/526165.html
Ohne Sourcen mußt Du es wohl selbst entdecken

Gruß Horst
Hallo Horst,
Kann ich bei mir nicht nachvollziehen.
Daher ein paar Fragen:

Wenn du sagst "Schon beim Start "External Exception ..." , meinst du dann gleich wenn du das Programm startest, oder wenn du die Erstellung des Siebs startest?

Wenn du sagst "Bei MAX= 1e9 ...", meinst du dann, die Exceptions kommen bei der Erstellung des Siebs oder bei der Anzeige der Zahlen in der Liste ganz rechts?
Und: wie ist das kleineren Werten?

Läuft das bei dir als Single-Thread oder als Multi-Thread?
Anders gefragt: Welche Zahl steht in der Statusbar im dritten Panel von rechts?

Last, not least:
Welche CPU hat dein Rechner. (External Exception C0000001D heißt Illegal Instruction, es könnte also gut sein, dass ich einen Assembler Befehl nutze, den die CPU nicht "kann" - eher unwarscheinlich, aber möglich).

Wieviel Ram ist verfügbar.

Danke für Deine Mithilfe.
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
Horst_

Registriert seit: 22. Jul 2004
Ort: Münster Osnabrück
116 Beiträge
 
#5

AW: Sieb des Eratosthenes

  Alt 3. Jun 2013, 13:36
Hallo,

AMD Phenom X4 955, Win7.
Schon zum Start kommt die Fehlermeldung.
Bei Ausführen dann extrem oft.Das II.te Bild ist bei 4E9 single Thread.
Heute morgen war es 4-fach thread.
Aus http://www.delphigroups.info/2/56/526165.html:
Zitat:
This is most probably memory corruption at work, some faulty code in your
program may have managed to overwrite a return address on the stack. When
trying to return to the mangled address the CPU ends up on some data bytes it
tries to interpret as instructions, and it fails with this error. In fact it
probably ends up in code, but in the middle of a multibyte instruction. Data
usually does not have the EXECUTE privilege, so you get an access violation,
not an invalid instruction.

It is quite easy to overwrite stack memory by incorrect usage of functions
that have untyped VAR parameters (FillChar, Move, the stream Read methods).
If you pass a pointer variable to them and forget to dereference it -> BOOM!.
Gruß Horst
Angehängte Grafiken
Dateityp: jpg FehlermeldungII.jpg (77,6 KB, 39x aufgerufen)
Dateityp: png Fehlermeldung.png (54,4 KB, 34x aufgerufen)
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#6

AW: Sieb des Eratosthenes

  Alt 3. Jun 2013, 20:18
Gibt es einen Grund, uns den Quellcode vorzuenthalten?

Meinst Du, das sei ein Mehrwert für die Menschheit, den man zu Geld machen kann?
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Sieb des Eratosthenes

  Alt 4. Jun 2013, 10:19
Ich nehm mal an, daß Amateurprofi den Algo von sx2008 benutzt. Hätte mich auch mal interessiert, ob Amateurprofi diesen um Faktor 2 beschleunigt hat, denn das Sieb braucht die geraden Zahlen ja nicht.
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:10 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz