Я пытаюсь напечатать последовательность Фибоначчи Benet's formula, однако мои значения неверны. Я что-то упустил?Python печать Фибоначчи не работает
import math
def F(n):
return ((1+math.sqrt(5))**n-(1-math.sqrt(5))**n)/(2**n*math.sqrt(5))
for x in range(0, 100):
print(F(x))
Результаты я получаю являются:
0.0 1.0 1.0 2.0 3.0000000000000004 5.000000000000001 8.000000000000002 --- start's going wrong here 13.000000000000002 21.000000000000004 ...
Он должен иметь что-то делать с точностью. Однако использование cmath
вместо math
тоже не помогает.
Любая помощь будет оценена по достоинству.
Вы можете использовать модуль [Десятичный] (https://docs.python.org/3.4/library/decimal.html). – TidB
Кроме того, прочитайте [this] (https://docs.python.org/2/tutorial/floatingpoint.html#representation-error) – tyteen4a03