benutzen von uebergroßen Zahlen
-
Michael E. schrieb:
Jester: Du kennst doch ne Möglichkeit, mit Modulo so große Zahlen zu "umgehen".
Prinzipiell schon, aber nur wenn es das Problem hergibt. Das geht leider nicht immer. Um das zu beurteilen braucht man auf jeden Fall ne vollständige Problembeschreibung.
-
Wie wärs mit ner eigenen Klasse extralanger Ints?
Bsp:
nehme ein Klasse, die bei Erstellung sagen wir 4 Byte Speicher alloziiert. Wenn du über das Maximum dieser 4 Bytes hinausschießt, alloziierst du wieder 4 neue Bytes. und hast mal eben einen Faktor 2 hoch 64 größeren Bereich. Prinzipiell ist die Größe der Zahlen dann nur durch den verfügbaren Speicher begrenzt...
-
Die Zahl ist schon mit double darstellbar, allerdings nur mit 16 Stellen Auflösung.
Wenn er Zahlen dieser Größenordnung für Primzahlen oder ähnliches braucht, sind alle float-Formate inakzeptable.
Die Zahlen die er braucht liegen alle im bereich der Natürlichen Zahlen >0.Ich habe im Netz schon ein paar mal Biblotheken gesehen die einem lange IntegerZahlen zur Verfügung stellen, am besten mal Googlen.
Die Lösungen die die Zahl als String darstellen und eine Stellenweise berechnung machen, fallen aber hier wegen der Laufzeitproblematik unten durch
-
-
Artchi schrieb:
Probier mal das Template std::complex aus der Header <complex>.
*lol*
-
Nimm einfach Java und nutze die Klasse "biginteger". Da zeigt sich mal wieder, dass Java einfach die bessere Sprache ist.
-
JavaFan schrieb:
Nimm einfach Java und nutze die Klasse "biginteger". Da zeigt sich mal wieder, dass Java einfach die bessere Sprache ist.
nein java hat nur die bessere library.
-
Hätte unser Javafan den Thread gelesen, wäre ihm aufgefallen, dass Braunstein einen Link auf die GMP hinterlassen hat, die genau das macht. Und, wenn ich das hinzufügen darf, sowohl intuitiver als auch flexibler als auch schneller als die Java Bignum-Bibliothek. Operatorüberladung sei Dank.
-
0xdeadbeef schrieb:
Hätte unser Javafan den Thread gelesen, wäre ihm aufgefallen, dass Braunstein einen Link auf die GMP hinterlassen hat, die genau das macht. Und, wenn ich das hinzufügen darf, sowohl intuitiver als auch flexibler als auch schneller als die Java Bignum-Bibliothek. Operatorüberladung sei Dank.
Der JavaFan hätte das aber wohl lieber in der Standardlibrary drin.
-
ist gmp das beste library??
-
0xdeadbeef schrieb:
Operatorüberladung sei Dank.
ist doch eine c library?!
-
Eigentlich sollte das ja ne kleine Flamewar starten, aber kommt ja recht schwer in Gange
Was ist los, schon das Wochenende vor Augen
-
JavaFan schrieb:
Eigentlich sollte das ja ne kleine Flamewar starten, aber kommt ja recht schwer in Gange
eigentlich war das schon ein kleiner flamewar.
-
rolfi schrieb:
0xdeadbeef schrieb:
Operatorüberladung sei Dank.
ist doch eine c library?!
Es gibt aber eine C++ Schnittstelle dafür.
-
Hi Leute!
Vielen Dank für eure zahlreichen kreativen Vorschläge. Ich habe mir die GNU-Bibliothek mal runtergeladen, aber vermutlich brauche ich Jahre bis ich die vollständig erforscht habe.
Wie schon gesagt, ich bin kein Spezialist. Gibt es nicht vielleicht eine "einfache" Lösung?
Gruß
-
pumuckl schrieb:
Wie wärs mit ner eigenen Klasse extralanger Ints?
Bsp:
nehme ein Klasse, die bei Erstellung sagen wir 4 Byte Speicher alloziiert. Wenn du über das Maximum dieser 4 Bytes hinausschießt, alloziierst du wieder 4 neue Bytes. und hast mal eben einen Faktor 2 hoch 64 größeren Bereich. Prinzipiell ist die Größe der Zahlen dann nur durch den verfügbaren Speicher begrenzt...Das hört sich ja nicht so schlecht an. Hatte auch schon die Idee, das irgendwie mit verketteten Listen oder sowas zu realisieren, aber ich habe keine Ahnung wie ich das dann anstellen soll - vor allen Dingen so, dass ich dann mit den Zahlen auch noch rechnen kann.
-
Abraxxas schrieb:
Wie schon gesagt, ich bin kein Spezialist. Gibt es nicht vielleicht eine "einfache" Lösung?
Was, noch einfacher? Schnapp dir die Doku und leg los...
#include <iostream> #include <gmpxx.h> int main() { mpz_class a = 4711, b="2993493499438299292929"; std::cout << (a * b) << std::endl; }
-
Ah jetzt ja! Das ist ein tolles Spielzeug!!
Damit kann ich noch viel Spaß haben...
Vielen Dank allen Zusammen!!! Wenn ich dann mal was sinnvolles zustande gebracht habe, dann dürft ihr euch natürlich auch gerne mal den Code angucken...