ich zur Zeit mit diesem einfachen Code bin die Umsetzung versucht, das n-te Element der Fibonacci-Folge Python 2.7 unter Verwendung von zu finden:Ungenaue Große Fibonacci-Zahlen in Python
import numpy as np
def fib(n):
F = np.empty(n+2)
F[1] = 1
F[0] = 0
for i in range(2,n+1):
F[i]=F[i-1]+F[i-2]
return int(F[n])
Dies funktioniert gut für F < 79, aber danach Ich bekomme falsche Zahlen. Zum Beispiel, nach Wolfram alpha F79 sollte gleich 14472334024676221 sein, aber fib(100)
gibt mir 14472334024676220. Ich denke, das könnte durch die Art verursacht werden, wie Python mit Ganzzahlen befasst, aber ich habe keine Ahnung, was genau das Problem ist. Jede Hilfe wird sehr geschätzt!
Warum verwenden Sie 'numpy' hier? Es macht keinen Sinn und wird wahrscheinlich nur verlangsamen. Ich vermute, dass es ein Problem ist, das sich aus der Verwendung von "np.empty" und der Art, wie "int" die kleinen Variationen behandelt, ergibt. –
Warum sollten Sie sie trotzdem in einer Liste speichern, wenn Sie nur das Ergebnis zurückgeben? Sie könnten einfach nur zwei Zahlen in Ihrer Funktion verfolgen. –
Ich habe erst vor kurzem begonnen, numpy (und Python für diese Angelegenheit ..) zu verwenden und wollte es nur verwenden, um einige Befehle zu implementieren, die ich in den letzten paar Tagen gelernt habe. Sollte sich an die grundlegenden Befehle gehalten haben. Trotzdem danke. – berkju