Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   TBigInt Division (https://www.delphipraxis.net/90165-tbigint-division.html)

Antigo 12. Apr 2007 16:38


TBigInt Division
 
Hi,
ich möchte aus Spass eine Klasse entwickeln, mit deren Hilfe man mit sehr großen Integerzahlen rechenen kann.
Also hat die Klasse TBigInt ein dynamisches array von Ziffern (von 0 bis 9). Jetzt wollte ich die Grundrechenarten nachprogrammieren. Addition war kein Problem (wenn die Funktion auch nicht wirklich performant ist, aber wayne) und auch Subtraktion und Multiplikation werde ich denke ich mal schaffen.
Was mir sorgen bereitet ist die Division. Wenn hier sowohl Divisor als auch Divident größer sind als es der Integerbereich zulässt, wie berechne ich diese Division dann, kurz, wie kann ich die Division, ähnlich wie die Addition auf kleinere Zahlen runterbrechen?

Als Idee kam mir noch den Logarithmus zu verwenden, um die Division auf eine Subtraktion zurück zuführen, nach dem Motto ln(a/b)=>ln(a)-ln(b). Wenn ich also wissen will, was 10/5 ist , dann rechne ich e^(ln(10)-ln(5)). Problematisch ist hier einerseits, dass ich eine Exponentialfunktion implementieren müsste, die mit meine TBigInt Klasse umgehen kann und die Tatsache, das es so scheint als werde der Logaritmus Naturalis nur näherungsweise berechnet, zumindest meine ich das aus der FOrmel von wikipedia herauszuerkennen ;)


kann mir jemand einen Denkanstoß geben?

danke :)

mfg

mkinzler 12. Apr 2007 16:41

Re: TBigInt Division
 
Such emal nach Hier im Forum suchenVLI

DP-Maintenance 12. Apr 2007 18:36

DP-Maintenance
 
Dieses Thema wurde von "Matze" von "Programmieren allgemein" nach "Object-Pascal / Delphi-Language" verschoben.
Delphi-Frage

Antigo 12. Apr 2007 20:41

Re: TBigInt Division
 
danke für den tipp, den Suchbegriff hatte ich schon, hab leider nix konkretes finden können. trotzdem danke :)

btw: warum wurde das Thema verschoben? Die Problemstellung hat doch nichts mit Pascal oder Delphi zu tun, sondern ist ein allgemeines ~informatisches~ Problem.

3_of_8 12. Apr 2007 21:03

Re: TBigInt Division
 
Das ganze mit Dezimalziffern zu machen ist sowohl vom Speicherplatz als auch von der Rechengeschwindigkeit absolut ineffizient. Nimm halt einfach ein array of Cardinal.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:47 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