Float mit unbegrenzter Genauigkeit
Verfasst: Sonntag 20. Januar 2013, 17:19
Ich habe eine Funktion geschrieben die mir die Fibbonacci-Zahlen direkt berechnet, da eine rekursive sehr langsam ist.
Bei n>72 bekomme ich einen Rundungsfehler und bei n>1472 einen OverflowError: (34, 'Numerical result out of range').
Gibt es die Möglichkeit mit unbegrenzt genauen Float werten zu rechnen? Oder zumindest höherer Genauigkeit?
Vll. am besten mit variabler Genauigkeit, je nachdem wie groß mein n ist.
Der OverflowError ist schätze ich mal auch ein Float Problem, da ich mMn schon mit größeren Integern gerechnet habe. Was kann ich da machen?
MfG Tompazi
Code: Alles auswählen
def fib(n):
a=(1+math.sqrt(5))/2
b=(1-math.sqrt(5))/2
return int((a**n-b**n)/(a-b))
Gibt es die Möglichkeit mit unbegrenzt genauen Float werten zu rechnen? Oder zumindest höherer Genauigkeit?
Vll. am besten mit variabler Genauigkeit, je nachdem wie groß mein n ist.
Der OverflowError ist schätze ich mal auch ein Float Problem, da ich mMn schon mit größeren Integern gerechnet habe. Was kann ich da machen?
MfG Tompazi