Berechnen Sie mit Python Millionen von Stellen in der Quadratwurzel von 2

Erstellen Sie mit Python ein Programm, das Millionen von Ziffern paralleler 2er-Wurzeln berechnet. Die Berechnungsmethode verwendet die folgende Newton-Iterationsmethode für inverse Zahlen. Iterativ: x = x + x * (1-x * x / 2) / 2 Das Merkmal dieser Methode ist, dass es keine mehrstellige Unterteilung gibt. Der n-stellige Berechnungsteil in Python lautet wie folgt. def sqrt2(n):  bit, dec = 40, 12  d12 = 100001000010000  x = int( math.sqrt(2)(1 << bit) )  while dec <= n:   dec = dec << 1   d2 = 1 << (2bit)   x0 = (xx) >> 1   x1 = (d2 - x0) >> 1   x2 = (xx1) >> bit   x = (x << bit) + x2 + 1   bit = 2bit   d12 = d12d12   x = (x*d12) >> bit  dec_o = (n // 100)*100  return x

Das Format (x) ist erforderlich, um das Berechnungsergebnis von x = sqrt2 (n) in eine Dezimalzahl umzuwandeln. Die gesamte Python-Version finden Sie im Abschnitt zum Python-Programm unter https://ecc-256.com. Laden Sie sqrt2 herunter und ändern Sie sqrt2.py und den ersten zu importierenden Import. Geben Sie an der Eingabeaufforderung python sqrt2.py ein. Geben Sie als Nächstes die Anzahl der Ausgangsziffern ein. 1000000 für 1 Million Stellen

Die Berechnungszeit von 3 Millionen, 6 Millionen, 12 Millionen für Windows 10-PCs (4 GHz) ist wie folgt. x=sqrt(n) : 6.7, 19.9, 59.7 (s) format(x) : 136, 545, 2180 (s)

Die Dezimalumrechnung für die Ausgabe dauert viel länger als die Berechnung von sqrt (2). sqrt (2) benötigt doppelt so viele Ziffern und dreimal so lange, und die Dezimalkonvertierung dauert viermal so lange. Die Berechnungsmultiplikation ist die Karatsuba-Methode, und die Umrechnungsmultiplikation beruht auf der Definitionsformel.

Selbst in Python kann es beschleunigt werden, indem mit etwa 1000 Dezimalstellen skaliert wird (Wert ist binär int) und eine Hochgeschwindigkeits-Restkonvertierung (FMT) angewendet wird. Das Ziel liegt innerhalb von 3 Minuten auf einem 4-GHz-PC, einschließlich der Berechnung von 100 Millionen Ziffern und der Konvertierung in Dezimalzeichen (Ende Februar).

Recommended Posts

Berechnen Sie mit Python Millionen von Stellen in der Quadratwurzel von 2
Berechnen Sie die Gesamtzahl der Kombinationen mit Python
[Python] Berechnen Sie die Anzahl der Stellen, die zum Ausfüllen von Nullen erforderlich sind. [Hinweis]
So ermitteln Sie die Anzahl der Stellen in Python
Berechnen Sie den Regressionskoeffizienten der einfachen Regressionsanalyse mit Python
Versuchen Sie, COVID-19 Tokyo-Daten mit Python zu kratzen
[Homologie] Zählen Sie mit Python die Anzahl der Löcher in den Daten
Berechnen Sie den Vormonat in Python
Geben Sie den Inhalt von ~ .xlsx im Ordner mit Python in HTML aus
Visualisieren Sie die Häufigkeit von Wortvorkommen in Sätzen mit Word Cloud. [Python]
Tipps: [Python] Berechnen Sie den Durchschnittswert des angegebenen Bereichs mit Bedgraph
Überprüfen Sie das Verhalten des Zerstörers in Python
Überprüfen Sie die Existenz der Datei mit Python
Zeigen Sie Python 3 im Browser mit MAMP an
Das Ergebnis der Installation von Python auf Anaconda
Grundlagen zum Ausführen von NoxPlayer in Python
Auf der Suche nach dem schnellsten FizzBuzz in Python
Ein Memo eines Programms, das ein zweistelliges Datum mit Javascript, Ruby, Python oder einem Shell-Skript abruft.
Berechnen Sie die kürzeste Route eines Diagramms mit der Dyxtra-Methode und Python
Berechnen Sie die Wahrscheinlichkeit, eine Tintenfischmünze zu sein, mit dem Bayes-Theorem [Python]
Erhalten Sie eine Liste der Ergebnisse der Parallelverarbeitung in Python mit Starmap
Ich habe Hunderte Millionen SQLite mit Python ausprobiert
Geben Sie die Anzahl der CPU-Kerne in Python aus
[Python] Holen Sie sich die Dateien mit Python in den Ordner
[Python] Sortieren Sie die Liste von pathlib.Path in natürlicher Reihenfolge
Bereiten Sie die Ausführungsumgebung von Python3 mit Docker vor
[Hinweis] Exportieren Sie das HTML der Site mit Python.
Passen Sie die Verteilung jeder Gruppe in Python an
Zeigen Sie das Ergebnis der Geometrieverarbeitung in Python an
[Automatisierung] Extrahieren Sie die Tabelle als PDF mit Python
Kopieren Sie die Liste in Python
Überprüfen Sie das Datum der Flaggenpflicht mit Python
Finden Sie den Bruchteil des in Python eingegebenen Werts heraus
Finden Sie die Lösung der Gleichung n-ter Ordnung mit Python
Die Geschichte des Lesens von HSPICE-Daten in Python
[Hinweis] Über die Rolle des Unterstrichs "_" in Python
Lösen von Bewegungsgleichungen in Python (odeint)
Ausgabe in Form eines Python-Arrays
Konvertieren Sie den Zeichencode der Datei mit Python3
Ein Liner, der mit Python ein Umfangsverhältnis von 10000 Stellen ausgibt
[Python] Bestimmen Sie den Typ der Iris mit SVM
Ich habe Pygame mit Python 3.5.1 in der Umgebung von pyenv unter OS X installiert
Vergleichen Sie die Summe jedes Elements in zwei Listen mit dem in Python angegebenen Wert
[Numpy, scipy] Wie berechnet man die Quadratwurzel einer Elmeet-Matrix mit halbregelmäßigem Wert?
So erhalten Sie mit Python eine Liste der Dateien im selben Verzeichnis
der Zen von Python
Zeigen Sie in Python n Nachkommastellen an
Erleben Sie die gute Berechnungseffizienz der Vektorisierung in Python
Extrahieren Sie die Tabelle der Bilddateien mit OneDrive & Python
Lerne Nim mit Python (ab Anfang des Jahres).
[Python] Holen Sie sich die Zahlen im Diagramm mit OCR
Zerstören Sie den Zwischenausdruck der Sweep-Methode mit Python
[Python] Ruft die Liste der im Modul definierten Klassen ab
Visualisieren Sie den Bereich der internen und externen Einfügungen mit Python
Crawlen Sie die im Twitter-Tweet enthaltene URL mit Python
Die Geschichte von FileNotFound im Python open () -Modus = 'w'
Konvertieren Sie das Bild in .zip mit Python in PDF
Ein Liner, der mit Python ein Umfangsverhältnis von 1000000 Stellen ausgibt