Ich möchte die eulersche zahl auf n stellen berechnen und habe damit noch bis nächsten mittwoch zeit. Da die berechnung sehr lange dauert fange ich morgen an mein script auszuführen. Doch die eigentliche Gretchenfrage ist wie, ob ich währen der Berechnung die aktuellen Werte auslesen kann, gesetzt dem Fall, dass der Rechenknecht bis dahin nicht fertig wird ...
Danke schon mal im Voraus für hilfreiche antworten.
aktelle Werte in einer while schleife ausgeben
Hallo und willkommen im Forum!
Ich würde einfach ab und zu, wie häufig musst du selbst entscheiden, das Zwischenergebnis in eine Datei schreiben. Dazu vielleicht noch alle anderen Werte, welche zur Fortsetzung benötigt werden. Dann überstehst du auch einen Stromausfall oder einen Absturz.
Wie viele Stellen sollst du denn bestimmen und warum machst du das in Python? Wenn es wirklich so lange dauert, dann hätte ich C oder C++ bemüht. Falls du es noch nicht getan haben solltest, dann wirf noch einen Blick auf PyPy und Cython. Damit lässt sich für sehr wenig Aufwand sehr viel Zeit sparen.
Ich würde einfach ab und zu, wie häufig musst du selbst entscheiden, das Zwischenergebnis in eine Datei schreiben. Dazu vielleicht noch alle anderen Werte, welche zur Fortsetzung benötigt werden. Dann überstehst du auch einen Stromausfall oder einen Absturz.
Wie viele Stellen sollst du denn bestimmen und warum machst du das in Python? Wenn es wirklich so lange dauert, dann hätte ich C oder C++ bemüht. Falls du es noch nicht getan haben solltest, dann wirf noch einen Blick auf PyPy und Cython. Damit lässt sich für sehr wenig Aufwand sehr viel Zeit sparen.
Das Leben ist wie ein Tennisball.
GNU MP kennst du? Ich würde mal davon ausgehen, dass das deutlich performanter ist als die Pure-Python-Lösung von mpmath. Für GNU MP gibt es mit GMPY auch eine Python-Schnittstelle.
Das Leben ist wie ein Tennisball.
Wenn du dein Programm schon fertig geschrieben hast, dann würde ich es einfach mit PyPy starten. Das läuft dann wahrscheinlich deutlich schneller als mit dem Standardinterpreter. Dann musst du nicht ganz so lange warten. In GMPY oder Cython würde ich mich an deiner Stelle nur einarbeiten, wenn du noch mehr solcher intensiver Berechnungen machen musst. Sonst lohnt sich der ganze Aufwand wohl nicht.
Das Leben ist wie ein Tennisball.
Ich hab mal die Eulerzahl auf eine Million Stellen berechnet. Mit reinem Python hat's bei mir ~15min gedauert.
Die ersten paar Ziffern sind 2.718281828459045235360287471352662497757247093699959574966967627724076630353547594571382178525166427
Die ersten paar Ziffern sind 2.718281828459045235360287471352662497757247093699959574966967627724076630353547594571382178525166427
@plotxy: ich habe jetzt keine genaue Fehlerrechnung gemacht, sondern einfach ein paar hundert Stellen mehr berechnet und dann gerundet. Mathematica scheint sich in den letzten paar Stellen auch immer etwas großzügig zu zeigen. (braucht übrigens für die selbe Aufgabe nur 2 Sekunden).
Wie sieht denn dein bisheriger Code aus? Welches Verfahren verwendest du? Wenn ich ins Blaue tippen sollte würde ich vermuten, dass du bei jedem Durchlauf die Fakultät neu berechnest und nicht vom vorherigen Wert weiterrechnest.
Das Leben ist wie ein Tennisball.