Quote (Kasiir @ Apr 9 2017 11:04am)
Gibt in vielen sprachen libs für solche zahlen. Kannst einfach benutzen und hast nicht die Möglichkeit da weitere Fehler einzubauen. Kannst einfach googlen "<Programmiersprache> + arbitrary large numers". Oder "<Sprache> arbitrary precision library". Für C (mit C++ wrapper) z.B.
https://gmplib.org/Nicht empfohlen, trifft wohl her nicht auf deine Situation zu:
wenn es kritisch bezüglich speicherbedarf und/oder laufzeit ist, wäre es wohl besser über das genaue Problem nachzudenken.
Es wäre theoretisch denkbar einfach alle Zahlen in einem byte array aneinander zu hängen.
Zusätzlich man man eine weitere liste mit byte-offsets die immer den start jeder zahl markieren. Eine zahl geht dann einfach von ihrem start bis zum des Nachfolgers.
Wenn man vor allem iterieren will und space sehr kritisch ist, (und es sich lohnt, weil es auch kleine Zahlen zwishcen den sehr großen gibt) könnte man prefix-free codes nutzen (https://en.wikipedia.org/wiki/Prefix_code). Gibt noch 100e Möglichkeiten, aber hängt sehr davon ab, was für Zahlen man hat und was die Anforderungen sind.
Wahrscheinlicher ist auf jeden Fall, dass du mit einer einfachen library am besten bedient bist.
mir geht es akut darum eine zahlenfolge innerhalb von 60 sekunden / 1min zu generieren die jedoch bereits nach ~3-4sekunden laufzeit über die größe aller normalen datentypen hinaus geht.
eine fertige lib finde ich eher solala
selber dachte ich halt spontan an die lösung mit einem array pro zahl, welches dann die zahl beispielsweise in kleine 10^8 große stücke aufteilt.
eine bessere idee kam mir bisher nicht, allerdings denke ich, dass es doch etwas einfacher gehen muss?
