Frage

Ich habe immer neugierig: Wie kann ich arithmetische Operationen auf sehr lange Dezimalstellen durchführen - zum Beispiel pi zum 3000. Dezimalstelle (vor allem in einer imperativen Sprache) Berechnen

?
War es hilfreich?

Lösung

Verwenden Sie eine Sprache oder Bibliothek, die Zahlen beliebiger Genauigkeit unterstützt ...?

In Python, Ints wird longs Auto-Förderung, die beliebige Größe aufweisen. Sie könnten einen zweiten Wert verwenden für die Verfolgung, wie viele Dezimalstellen durch Verschiebung über eine Art beliebiger Genauigkeit Gleitkomma zu erhalten.

In Java könnten Sie die BigDecimal Klasse, die „unveränderliche, beliebige Genauigkeit unterzeichnet Dezimalzahlen“.

steht

Ich bin sicher, dass andere Beispiele in anderen Sprachen vorhanden sein.

Andere Tipps

Für Sprachen, die es nicht auf Berechnungen bignums unterstützen, sind häufig Bibliotheken. Vielleicht haben Sie einen Blick auf GMP haben, zum Beispiel. Die Dokumente geben Ihnen Hinweise auf einige der typischen algorithmischen Ansätze.

bignum Arithmetik schnell zu machen ist schwierig, so gibt es einige ziemlich gewundenen Algorithmen gibt ...

Sie entweder mit den Daten an der digit Ebene arbeiten (z.B. jede Ziffer berechnet inkrementell oder deterministisch) oder ein neue Datenstrukturen zu definieren, die eine ausreichende Anzahl von Bits haben eine ausreichende Genauigkeit zu bieten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top