Ich war schon immer neugierig: Wie kann ich arithmetische Operationen an sehr langen Dezimalzahlen ausführen - zum Beispiel, um pi bis zur 3000. Dezimalstelle zu berechnen (besonders in einer imperativen Sprache)?Arithmetische Operationen an sehr, sehr langen Dezimalzahlen
Antwort
Verwenden Sie eine Sprache oder Bibliothek, die beliebige Präzisionszahlen unterstützt ...?
In Python werden Ints automatisch zu Longs promoten, die eine beliebige Größe haben. Sie können einen zweiten Wert verwenden, um zu verfolgen, um wie viele Dezimalstellen nach oben verschoben werden soll, um eine Art Gleitkomma beliebiger Genauigkeit zu erhalten.
In Java können Sie die Klasse BigDecimal verwenden, die "unveränderliche Dezimalzahlen mit Vorzeichen mit beliebiger Genauigkeit" darstellt.
Ich bin sicher, dass andere Beispiele in anderen Sprachen existieren.
Entweder müssen Sie mit den Daten auf der Ziffernebene arbeiten (z. B. jede Ziffer schrittweise oder deterministisch berechnen) oder neue Datenstrukturen definieren, die über eine ausreichende Anzahl von Bits verfügen, um eine ausreichende Genauigkeit zu gewährleisten.
Für Sprachen, die Berechnungen auf Bignums nicht unterstützen, gibt es oft Bibliotheken. Vielleicht sehen Sie sich beispielsweise GMP an. Die Dokumente geben Ihnen Hinweise auf einige der typischen algorithmischen Ansätze.
machen bignum Arithmetik schnell ist schwierig, so gibt es einige ziemlich gewundenen Algorithmen da draußen ...
- 1. jQuery flot: Balkendiagramm mit sehr langen Achsenbeschriftungen
- 2. Ausführen von mathematischen Operationen an sehr großen Zahlen in Perl
- 3. Sehr, sehr große Zahlen in vb.net
- 4. Transaktionen über sehr sehr große Entitätsgruppe
- 5. arithmetische Operationen innerhalb Vorlagen
- 6. Sehr langsam std :: pow() für Basen sehr nahe an 1
- 7. GSON Serialisierung sehr sehr langsam
- 8. Publishing-Projekt mit Dateien mit sehr langen Namen
- 9. Anwendungsdefinierter Fehler beim Umgang mit Zellen mit sehr langen Strings?
- 10. Arithmetische Operationen auf BigInteger in Java
- 11. SQL-Verbindungsserver Abfrage sehr sehr langsam
- 12. Wie mit sehr langen Zeichenfolgen in Python arbeiten?
- 13. Gulp Sass Kompilieren zu einem sehr langen, unerwarteten Regelsatz
- 14. Wie plane ich eine Aufgabe in sehr langen periodischen Abständen
- 15. UIImage setImage ist sehr, sehr langsam
- 16. F # Typ Provider sehr sehr langsam bauen
- 17. Was ist "Section 508" sehr sehr einfach?
- 18. schnellste Weg arithmetische Operationen System.Array in Ironpython
- 19. Wie kann man einen sehr langen String problemlos an einen Worker-Prozess unter Windows übergeben?
- 20. Laufen Gradle Build Sehr lang
- 21. Sehr einfache C-Funktion
- 22. Scala parametrisierte Methoden und arithmetische Operationen
- 23. Wie Einfrieren bei langen Operationen
- 24. Python-Funktion Entwurf für arithmetische Operationen
- 25. Arithmetische Operationen in Arrays mit PHP
- 26. sql. Syntax wählen Arithmetische Operationen ausführen
- 27. Einschließlich arithmetische Operationen, wenn ein konstant
- 28. MongoDB-Aggregat für arithmetische Operationen - Filialdokument
- 29. Prolog - einige grundlegende arithmetische Operationen Implementierung
- 30. Stripping Newline ist sehr schwierig
Welche Sprache verwenden Sie? Aufgrund der APIs, die Sie möglicherweise für bignum-Vorgänge zur Verfügung haben, ist es spezifisch für die Sprache. – Noldorin
C#/VB ......... – Daniel