Einzelnen Beitrag anzeigen

Benutzerbild von negaH
negaH

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

Re: Größte Integer-Variable?

  Alt 22. Mai 2004, 15:55
@Nicolai1605, welche Genauigkeit benötigst du denn ??

Willst du nur eine angenäherte Rechnung aufmachen dann wird der Datentyp Extended völlig ausreichen. Du musst dann nur deine Formel anders aufbauen und mit Logarithmen rechnen.

Oder willst du absolut exakt deine Formel ausrechnen, dann benötigst du auf alle Fälle eine Mathematische Bibliothek die mit solchen großen Zahlen exakt rechnen kann. In diesem Moment falle mir für Delphi 3 verschiedene Bibliotheken ein:

1.) NX von Marcel Martin zu finden auf http://www.ellipsa.net/index.html. Die Lib ist Freeware und Marcel ist ein absolut fundierter Mathematiker. Allerdings Marcel streikt zur Zeit gegen das neue EU Patentrecht.

2.) StreamSec von Hendrik Hellström ist ein kommerzielles Kryptoprodukt zu finden auf http://www.streamsec.com/. StreamSec beschränkt sich natürlich nur auf die Kryptographie mit Zahlen bis zu 2^4096 und ist für supergroße Zahlen schlecht geeignet. Zudem kostet es etwas und ist meiner Meinung nach längst nicht so fundiert wie NX.

3.) IIntegers ist eine Entwicklung von mir, die leider nicht frei in Source verfügbar ist. Hier im Forum findest du aber eine binäre Distribution auf die du zu Hobbyzwecken durchaus aufsetzen kannst. Von enormen Vorteil dürfte dabei der Fakt sein das in dieser Lib die Unit NCombi.pas enthalten ist. Nun, in dieser Unit findest du die schnellsten bekannten Algortihmen um enorm große Fakultäten, Kombinatorische Berechnungen usw. durchzuführen. Mit diesen Basisfunktion dürfte es ein leichtes sein deine Formel bis aufs Bit genau auszurechnen. Performancetechnisch enthält meine Lib eben auch hochspezialisierte Algortihmen um mit sehr sehr großen Zahlen mit bis zu 2^2^24 Binären Stellen zu rechnen. Beide Libs, StreamSec und NX, enthalten dagegen eben keine solche Verfahren und sind in solch großen Zahlenbereichen erheblich ineffizienter.
Bei der Eigenentwicklung solcher Bibliotheken musst du bedenken das sie einen enormen Zeitaufwand und Wissenstand benötigen. Ich selber entwickelte ca. 3 Jahre an meiner lib und habe in diesem Zeitraum über 4Gb an Dokumenten angesammelt.

Gruß Hagen
  Mit Zitat antworten Zitat