Thema: Delphi Variablentypen

Einzelnen Beitrag anzeigen

Benutzerbild von negaH
negaH

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

Re: Variablentypen

  Alt 3. Mär 2006, 05:05
@FrÄnK:

sorry aber ich kann deine Intentionen nicht so recht nachvollziehen.

Du möchtest Mersenne Primes erzeugen und hast festgestellt das die Bordmittel eines Delphis und der CPUs nicht ausreichend sind um große Zahlen zu berechnen.

Mit der Begrüdnung alles selber zu machen und selber vestehen zu wollen möchtest du nun nicht nur das Problem der Mersenne Primes umsetzen sondern auch alles was mit der Berechnung großer Zahlen zu tuen hat. Das ist so als würde man, wenn man Auto fahren lernen will, sich darauf konzentrieren wie in Südamerkia die Kautschukbauern ihre Bäume düngen um zu verstehen wie ein Rad des Autos aufgebaut ist um dann auch das Auto fahren lernen zu können.

Der Vorschlag eine fertige Library zu benutzen ist schon Gold wert. So kannst du dich nämlich auf das eigentliche Problem der Mersenne Primes konzentrieren, ohne dabei auch noch wissen zu wollen wie man zwei Zahlen addiert.

Ich kann dir nur sagen das du den Aufwand hinter einer solchen Library nicht unterschätzen solltest. Am DECmath zb. habe ich 3 Jahre meiner Hobbyzeit investiert. Du kannst jetzt versuchen eine Library einzubinden und hast die Wahl dabei eine readymade, einfache und hocheffiziente Library wie DECMath zu benutzen oder aber eine Library aus dem C Bereich die du dann umständlich noch selber PASCAL konform machen musst.

Willst du echte Giganten von Mersenne Primes erzeugen dann musst du dich sowieso auf ganz andere Dinge konzentrieren. Immerhin die heutigen Rekorde sind eher eine "logistische" Meisterleistung bei der Vernetzung hunderter von Rechnern. Das ist die eigentliche Kunst dabei, die Umstellung solcher Formeln auf eine Art&Weise das man sie quasi parallel auf vielen Rechnern ausführen kann. Mit einem einfachen PC und quasi umständlicher BCD Arithmetik wirst du dabei nicht so weit kommen.

Andererseits kann ich wiederum bestätigen das die Beschäftigung mit der Zahlentheorie bis runter zu den simpelsten Datenstrukturen und Rechenoperationen für einen hartgesottenen Enthustiasten sehr informativ und lehrreich sein kann. Trotzdem würde ich mir ein 2. DECMath heute nicht mehr antuen wollen

Fazit: ich meine du solltest dir eine fertige mathematische Bibliothek aussuchen und dich dann ganz auf die Problematik der Mersenne Primes konzentrieren. Dieses Thema für sich genommen ist schon so gewaltig das sich Professoren damit über Jahre beschäftigen und einen Rekord nach dem anderen aufstellen wollen.

Der Tipp mit den BCD Zahlen wird dich in die Irre führen. Es ist zwar gut zu wissen was BCDs eigentlich sind, aber in deinem Falle sind sie wohl eine genauso ineffiziente Wahl wie zwei Integer in Strings umzuwandeln und dann diese addieren zu wollen. Aus deiner Fragestellung ersehe ich aber das du schon Probleme hast große Datenbereiche im Speicher zu allozieren. Aber exakt das ist Grundwissen um überhaupt eine effiziente Bibliothek zu Berechnung super großer Zahlen zustande zu bekommen. Nur mal so als Anhaltspunkt: die Basisfunktionen im DECMath, also nur die Sourcen der Unit NInts.pas und deren Assemblerparts (also 2 Quelltextdateien) umfassen 18000 Zeilen ! Davon kanst du alleine 70% rechnen die verbraucht werden um zwei Zahlen in weiten Wertebereichen schnell zu multiplizieren.

Gruß Hagen
  Mit Zitat antworten Zitat