Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями:
{F(n)= 2} при n < 3;
F(n)=2×F(n−2)−F(n−1)+2 , если n > 2 и четно.
F(n)=2×F(n−1)−F(n−2) - 2 , если n > 2 и нечетно.
Чему равно значение выражения F(17) ?
Решение:
Решение на Python:
from functools import lru_cache
@lru_cache(None)
def F(n):
if n < 3: return 2
if n > 2 and n % 2 == 0:
return 2*F(n-2)-F(n-1)+2
if n > 2 and n % 2 != 0:
return 2*F(n-1)-F(n-2)-2
for i in range(10000):
F(i)
print(F(17))
Ответ: 358
Ответ:
358