Seite 1 von 1

Berechnung der Kreiszahl Pi

Verfasst: Sonntag 26. Mai 2013, 18:56
von nooby
Hallo liebes Forum

Ich möchte ein Programm schreiben, dass Pi berechnet und jede neue Nachkommastelle in eine Datei schreibt.
Das Programm sollte dann auch von dort wieder fortgesetzt werden.
Ich habe bereits ein einfacher Algorithmus programmiert, welcher Pi näherungsweise bestimmt.

Code: Alles auswählen

from decimal import Decimal
summe = int(1)
for i in range(2, 2000):
    zahl = Decimal(1/(i**4))
    summe += zahl
    
summe *= 90
summe **= Decimal(0.5)
summe **= Decimal(0.5)
print(Decimal(summe))
Dies ist jedoch mit diesem Algorithmus nicht möglich.
Deshalb möchte ich mein Programm mit dem BBP Algorithmus schreiben. Dieser kann ja eine Stelle berechnen, ohne die vorhergehende zu kennen.
Ich habe auch schon diese Implementierung ausprobiert.
http://en.literateprograms.org/Pi_with_ ... a_(Python)
Das Problem ist jedoch, dass mehrere Stellen ausgegeben werden. Und wie weiss ich jetzt bis zu welcher Stelle, das ganze Stimmt und wo nicht mehr?

Vielen Dank für eure Mühe eine Python Neuling zu helfen.

Re: Berechnung der Kreiszahl Pi

Verfasst: Sonntag 26. Mai 2013, 19:05
von EyDu
Hallo,

schau dir dazu mal diesen Thread bei Stackoverflow an. Da hast du erstmal genug Information ;-)

Re: Berechnung der Kreiszahl Pi

Verfasst: Sonntag 26. Mai 2013, 19:13
von nooby
Danke für den Link.
Mein Englisch ist leider (noch) nicht so gut...
Aber ich hab's probiert zu verstehen.
Heisst dass, dass dies mit dem Chudnovsky Algorithmus möglich ist, also das Fortsetzen einer bereits gestarteten Berechnung?
Und dass man den BBP Algo nur zum Überprüfen nutzen kann?

Re: Berechnung der Kreiszahl Pi

Verfasst: Sonntag 26. Mai 2013, 20:16
von nooby
Ich habe gelesen, dass das Stoppen und weiterrechnen von Pi mit dem Chudnovsky Algorithmus nicht möglich ist.
Und auch mit den anderen beiden:
Gauss–Legendre algorithm
Borwein's algorithm
Ist dies, so glaube ich, nicht möglich.
Gibt es irgendeinen Algorithmus, mit dem dies geht?
Mit dem BBP kann man ja nur als Hex berechnen.

Noch mals danke für eure Hilfe

Nooby

//Edit: Wie funktioniert beim BBP das Umwandeln in Dec genau?
Ich begreife nicht, wie das geht. Der Anfang ist ja: 243F6A8885A308D313198A2E03707344A4093822299F31D00...
Wenn ich dies in Dec umwandle erhalte ich nur 3 :K

Re: Berechnung der Kreiszahl Pi

Verfasst: Montag 27. Mai 2013, 09:48
von EyDu
Ja, das hast du richtig verstanden. Erst wird Pi mit Chudnovsky bestimmt und anschließend ("die letzten Ziffern") mit BBP getestet. Zur fortlaufenden Berechnung ist das nicht wirklich gut geeignet. Gibt es einen Grund, warum du die Ziffern schrittweise berechnen willst und du sie im Dezimalsystem brauchst?

Re: Berechnung der Kreiszahl Pi

Verfasst: Montag 27. Mai 2013, 16:29
von nooby
Nein, einen Grund hat es nicht. Aber ich möchte halt, wie z.B. bei BOINC, dass mein Programm im Hintergrund Pi berechnet.
Für das muss es bei einer beliebigen Stelle beginnen.
Dies ist aber mit dem Chudnovsky auch nicht möglich, oder?