ERLEDIGT
JA
JA
ANTWORTEN
2
2
ZUGRIFFE
189
189
EMPFEHLEN
-
25.06.10 17:45 #1
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...
-
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)
-
25.06.10 18:36 #3
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!
/ErledigtGeändert von Lil-rich (25.06.10 um 21:57 Uhr)
Ähnliche Themen
-
Datenbank-Tabelle auf 3 Ergebnisse-Listen aufteilen mit Modulo?
Von P_H_I_L im Forum Relationale DatenbanksystemeAntworten: 6Letzter Beitrag: 08.11.09, 13:03 -
Timer + Modulo
Von tameck im Forum JavaAntworten: 3Letzter Beitrag: 05.02.08, 11:32 -
Modulo und BigInteger
Von GreenThunder im Forum JavaAntworten: 2Letzter Beitrag: 02.01.06, 21:18 -
Modulo %
Von BSA im Forum PHPAntworten: 10Letzter Beitrag: 01.09.04, 12:25 -
DLL Listen- Absturz, Listen übergeben
Von haemmer im Forum C/C++Antworten: 0Letzter Beitrag: 05.02.04, 21:00





Zitieren
Login





