Я написал простую рекурсивную функцию:
def y(n):
if n == 0:
print("{} - {}".format(n, 0.182))
return 0.182
else:
print("{} - {}".format(n, 1 / n - 5 * y(n - 1)))
return 1 / n - 5 * y(n - 1)
И я не могу понять, почему она дала мне испорченные ответы. Вот пример:
0 - 0.182
1 - 0.09000000000000008
0 - 0.182
2 - 0.0499999999999996
0 - 0.182
1 - 0.09000000000000008
0 - 0.182
3 - 0.08333333333333531
0 - 0.182
1 - 0.09000000000000008
0 - 0.182
Когда я изменил код на:
def y(n):
if n == 0:
result = 0.182
print("{} - {}".format(n, result))
return result
else:
result = 1 / n - 5 * y(n - 1)
print("{} - {}".format(n, result))
return result
Он работал отлично. Почему?