Mit großen Zahlen > 2^32 (in int-vector!) rechnen



  • Hi allerseits 😉

    Ich hab hier ne Aufgabe, bei der ich mit beliebig großen Zahlen rechnen soll (die Grundrechenarten). Der Trick dabei ist, daß diese beliebig großen Zahlen jeweils in einem vector<int> gespeichert werden müssen(!!) (das Ergebnis natürlich auch).

    Ablauf: Eingabe der beiden Zahlen (positiv und negativ!), speichern in je einem vector<int>, diese werden zusammen mit dem jeweiligen Operanden an die zuständige Funktion übergeben und verrechnet. Rückgabewert ist dann das Ergebnis. Als Krönung noch die Ausgabe 😉

    Ich hab mir schon ne Billig-Lösung überlegt, aber die will ich lieber nicht implementieren. In nem anderen Forum hab ich mal nach alternativen Ideen gefragt, aber die waren für mich (Anfänger) zu kompliziert bzw sind die Leute dort dann in theoretische Grundsatzdiskussionen abgeglitten 😞 Dabei kann es ja nicht soooo schwierig sein, sonst würde man nem Anfänger die Aufgabe ja nicht zutrauen.

    Wie würdet ihr das lösen?

    bye,
    Q



  • ich hab mir sowas mal mit nem char-vector gemacht.
    nicht sehr ordentlich und nicht so schnell, aber geht an sich ganz gut. (war mal ne nette kleine spielerei das zu machen ^^)
    anschaun kannstes dir hier: http://www.binarystudios.de/k1ro/bigint.rar

    benutzung ist wie ein normaler int, nur eben das er "BigInt" heisst (ach und es gehn keine negativen zahlen, da war ich damals zu faul das noch zu reinzumachen *g*)



  • hi kiro!

    Schön, daß sich andere auch mit sowas herumschlagen 😉 Ziemlich heftig dein BigInt. Kannst du ganz grob beschreiben, wie es funktioniert, also wie zum Beispiel zwei Zahlen dividiert werden? Ich muß ja vor allem die Idee dahinter *verstehen*, um das für meine langen ints zu adaptieren. Bis jetzt hab ich noch nicht die Stelle gefunden, wo's spannend wird. Ganz vieles hatten wir auch noch gar nicht gehabt, da muß ich dann raten, was passiert.

    bye,
    Q



  • Hi Quincunx,

    ich schreibe mir derzeit auch ne kleine BigInt-Klasse(sogar mit negativen Zahlen). Das ganze basiert bei mir auch strings. In die speicher ich die Zahlen.

    Ich bin allerdings noch nicht sehr weit. Man kann bis jetzt nur 2 Zahlen addieren und subtrahieren. Das mit negativen Zahlen funzt bis jetzt auch nur bei der Addition.

    Im Prinzip basiert das Ganze natürlich darauf, wie man per Hand in der Grundschule Zahlen schriftlich addiert, subtrahiert, etc. hat. Wenn du soweit auch schon warst, dann verzeihe die Antwort.

    So, dass sollst erstmal gewesen sein.

    Ciao,
    Prof. MAAD



  • hi maad

    Willkommen im Club 😉

    Mit strings - das klingt auch interessant. Ich muß ein vector<int> benutzen, was man so ähnlich wie einen string handhaben kann (einfach die nackten Ziffern) oder effizienter mit Hex und Bytes. Und effizient sollte es natürlich sein.

    Da liegt aber mein Problem...

    ciaoi


Anmelden zum Antworten