Delphi-PRAXiS
Seite 3 von 5     123 45      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Größte Integer-Variable? (https://www.delphipraxis.net/22676-groesste-integer-variable.html)

Nicolai1234 22. Mai 2004 12:48

Re: Größte Integer-Variable?
 
Ich werde mich auch mal selber daransetzen und functionen programmieren, die mit strings rechnen können!
Wenn sie das Schritt für Schritt machen könnte man Zahlen bis 2GB länge nehmen, ich möchte nicht daran denken, wie viele Zeichen diese haben!

gmarts 22. Mai 2004 13:01

Re: Größte Integer-Variable?
 
Na bei 2GB Strings kannst du Zahlen mit 2 Mrd. Stellen nehmen. Ob das Sinn macht, ist eine andere Frage. :)

negaH 22. Mai 2004 14:55

Re: Größte Integer-Variable?
 
@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

ibp 22. Mai 2004 14:57

Re: Größte Integer-Variable?
 
Hallo, irgendetwas stimmt an deiner Formel nicht, du meinst doch sicherlich:
p(an)=1-(365!-(365-n)!)/365^n oder ?
gruß rené

ibp 22. Mai 2004 15:12

Re: Größte Integer-Variable?
 
Zitat:

Zitat von ibp
Hallo, irgendetwas stimmt an deiner Formel nicht, du meinst doch sicherlich:
p(an)=1-(365!-(365-n)!)/365^n oder ?
gruß rené

wenn das so ist, dann schau dir doch mal den vorgang der formel genau an und mach eine Faktorenzerlegeung, dann kannst du dir sicherlich die stellen sparen in hinblick auf eine hinreichende genauigkeit !

ich beziehe mich mal nur auf den hinteren Teil:

für n=3 folgt dann

Delphi-Quellcode:
365!-(365-3)!
------------- =  
   365^3 

365*364*363    365   364   363
------------- = ----*-----*-----= 1*...*...
365*365*365    365   365   365

und das könntest du dann schritt für schritt berechnen!

gruß!

Nicolai1234 22. Mai 2004 16:46

Re: Größte Integer-Variable?
 
Was ist an der Formle anders als an meiner?

ibp 22. Mai 2004 17:28

Re: Größte Integer-Variable?
 
die kann man missverstehen, jedenfalls ich. :stupid:
...
du kannst die berechnung aber auch so durchführen:

(M=pi entspricht produktzeichen)



M(k=0..n)=(1-k/365)^k


n=2 => M=((1-0/365)^0)*((1-1/365)^1)*((1-2/365)^2)


gruß rene

ibp 25. Mai 2004 09:22

Re: Größte Integer-Variable?
 
hallo Nicolai1605

wie hast du es denn jetzt realisiert?

gruß rené

gmarts 25. Mai 2004 18:53

Re: Größte Integer-Variable?
 
Liste der Anhänge anzeigen (Anzahl: 1)
So, wie versprochen 4 praktische Funktionen und 2 halbpraktische Funktionen zum Thema Rechnen mit großen Zahlen.
Damit lassen sich Zahlen bis zu (10^2147483648)-1 darstellen und berechnen (Theoretisch, wenn man gaaanz viel Zeit mitbringt :mrgreen: ).

Quellcode ist noch nicht dabei, da ich mich vor den 3 Strafen des Programmierens drücke: Optimieren, Strukturieren, Kommentieren. :drunken:

Bis denne

Erweiterung auf Reelle und Ganze Zahlen und Abfangen von Fehleingaben kommt in der nächsten Version.

Nicolai1234 25. Mai 2004 18:57

Re: Größte Integer-Variable?
 
Trotzdem wäre der QT nicht schlecht... (auch unkommentiert)


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:44 Uhr.
Seite 3 von 5     123 45      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz