Ich versuche darüber nachzudenken, wie ich mit extrem großen Zahlen rechnen würde (bis unendlich - keine Fließkommazahlen), wenn das Sprachkonstrukt keine Zahlen verarbeiten kann, die größer als ein bestimmter Wert sind.
Ich bin sicher, dass ich nicht der Erste oder der Letzte bin, der diese Frage stellt, aber die Suchbegriffe, die ich verwende, geben mir keinen Algorithmus, um mit diesen Situationen umzugehen. Eher bieten die meisten Vorschläge einen Sprach- oder Variablenwechsel an oder sprechen über Dinge, die für meine Suche irrelevant erscheinen. Also brauche ich eine kleine Anleitung.
Ich würde einen Algorithmus wie diesen skizzieren:
Bestimmen Sie die maximale Länge der Ganzzahlvariablen für die Sprache.
Wenn eine Zahl länger als die Hälfte der maximalen Länge der Variablen ist, wird sie in einem Array aufgeteilt. (Gib ein kleines Spielzimmer)
Array-Reihenfolge [0] = die Zahlen ganz rechts [n-max] = die Zahlen ganz links
Ex. Num: 29392023 Array [0]: 23, Array [1]: 20, Array [2]: 39, Array [3]: 29
Da ich die halbe Länge der Variablen als Markierungspunkt festgelegt habe, kann ich dann die Einsen, Zehntel, Hundertstel usw. berechnen. Platzieren Sie die Variable über die Zwischenmarke, sodass ich das weiß, wenn die maximale Länge einer Variablen 10 Stellen von 0 bis 9999999999 beträgt Indem ich das auf fünf Ziffern halbiere, bekomme ich etwas Spielraum.
Wenn ich also addiere oder multipliziere, kann ich eine variable Prüffunktion haben, die feststellt, dass die sechste Stelle (von rechts) von Array [0] mit der ersten Stelle (von rechts) von Array [1] identisch ist.
Teilen und Subtrahieren haben ihre eigenen Probleme, über die ich noch nicht nachgedacht habe.
Ich würde gerne wissen, welche Implementierungen für die Unterstützung größerer Zahlen am besten geeignet sind als das Programm.