tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
2
ZUGRIFFE
189
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Lil-rich
    Lil-rich Lil-rich ist offline Mitglied Gold
    Registriert seit
    Jun 2006
    Ort
    Augsburg (Bayern)
    Beiträge
    112
    Tach,

    hab da mal ein wieder ein Problem...

    Ich bin gerade dabei mit sehr großen Zahlen zu hantieren (teilweise mehrere hundert Stellen) und habe das nun umgesetzt mit Listen (List<int>), sodass jedes Listenelement genau eine Ziffer enthält.
    Nun versuche ich gerade ein paar Grundrechenregeln/-funktionen zu erstellen.

    Ich habe bis jetzt: Multiplizieren, Summieren und Differenzieren.

    Jetzt will ich noch das Teilen implementieren, was sich jedoch recht schwierig gestaltet... Angenommen ich will die Zahl 22 durch 3 teilen, dann hab ich ja eine Liste (Start->2->2->Abschluss) und eine Zahl (hier 3).
    Teile ich nun 2 durch 3, gehts nicht, also hätte ich prinzipiell so programmiert, dass er sich die 2 merkt und als nächstes "22" durch 3 teilt. Da entsteht aber das Problem:
    Das ganze läuft auf Primzahlenrechnungen hinaus. Wenn ich jetzt aber eine Primzahl mit 300 Stellen habe und die durch 3 geteilt werden soll (mit Rest, also Modulo), dann kann ich ja leider nicht alle Zahlen merken zwecks der Integer-Begrenzung (deshalb ist das Ganze auch mit Listen realisiert, was ich nun auch nicht mehr ändern kann und auch nicht will).

    Hat vielleicht jemand eine Lösung dafür? Oder hab ich da grad irgendwo nen Denkfehler?
    Wäre für jede Hilfe dankbar...
     

  2. #2
    Cromon Cromon ist offline Mitglied Brillant
    Registriert seit
    Apr 2008
    Beiträge
    819
    Kurzer Einwurf: Ist es nicht bisschen Verschwendung 4 Bytes für die Ziffern 0-9 zu verwenden? Wäre da nicht ein byte-Array besser? Oder einfach ein Array von Integern wobei dann einfach immer die nächsthöheren 32 Bits verwendet werden?

    /Edit:
    Ein Vergleich: Eine 100-stellige Zahl braucht bei dir mindestens 400 Byte Speicher, wenn du ein binäres Array machst schaffst du es in 42 Bytes.
    Geändert von Cromon (25.06.10 um 17:55 Uhr)
     

  3. #3
    Avatar von Lil-rich
    Lil-rich Lil-rich ist offline Mitglied Gold
    Registriert seit
    Jun 2006
    Ort
    Augsburg (Bayern)
    Beiträge
    112
    Prinzipiell hast du Recht. Aber momentan will ich es nicht ändern, da so die Ausgabe bzw das Testen viel einfacher von Statten geht.
    Vielleicht werde ich es nochmal ändern, wenn ich soweit fertig bin.

    (Ich weiß, eigentlich wäre es besser, das Ganze jetzt zu ändern, aberich wills dennoch erstmal fertig haben )



    EDIT: Denkblockade hat sich gelöst... Eigentlich ganz easy > Man muss isch nur mal überlegen, wie ne Division eigentlich funktioniert Einfach den Divisor immer wieder von der zu teilenden Zahl abziehen und dabei mitzählen. Und die Subtraktionsfunktion hab ich ja bereits!

    Trotzdem danke an Cromon für den Tipp!
    /Erledigt
    Geändert von Lil-rich (25.06.10 um 21:57 Uhr)
     

Ähnliche Themen

  1. Datenbank-Tabelle auf 3 Ergebnisse-Listen aufteilen mit Modulo?
    Von P_H_I_L im Forum Relationale Datenbanksysteme
    Antworten: 6
    Letzter Beitrag: 08.11.09, 13:03
  2. Timer + Modulo
    Von tameck im Forum Java
    Antworten: 3
    Letzter Beitrag: 05.02.08, 11:32
  3. Modulo und BigInteger
    Von GreenThunder im Forum Java
    Antworten: 2
    Letzter Beitrag: 02.01.06, 21:18
  4. Modulo %
    Von BSA im Forum PHP
    Antworten: 10
    Letzter Beitrag: 01.09.04, 12:25
  5. DLL Listen- Absturz, Listen übergeben
    Von haemmer im Forum C/C++
    Antworten: 0
    Letzter Beitrag: 05.02.04, 21:00