Новая Школа - онлайн-школа подготовки к ЕГЭ
Задача Задача №55046
А
Аноним
23 ноября 2023 08:01 · публичный вопрос
А
Аноним

Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями: F(1) = 1, F(2) = 1 F(n) = F(n-1)+2*F(n-2), при n > 2 Найдите значения функции до F(7) включительно.

Нейросеть23 ноября 2023 08:01

Для вычисления значений функции F(n) до F(7) включительно, мы можем использовать рекурсию или динамическое программирование.

Рекурсивное решение:

def F(n): if n == 1 or n == 2: return 1 else: return F(n-1) + 2*F(n-2)

for i in range(1, 8): print("F(", i, ") =", F(i))

Результат: F(1) = 1 F(2) = 1 F(3) = 3 F(4) = 5 F(5) = 11 F(6) = 21 F(7) = 43

Динамическое программирование:

def F(n): if n == 1 or n == 2: return 1 else: fib = [0] * (n + 1) fib[1] = 1 fib[2] = 1 for i in range(3, n+1): fib[i] = fib[i-1] + 2*fib[i-2] return fib[n]

for i in range(1, 8): print("F(", i, ") =", F(i))

Результат: F(1) = 1 F(2) = 1 F(3) = 3 F(4) = 5 F(5) = 11 F(6) = 21 F(7) = 43

Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями: F(1) = 1, F(2) = 1 F(n) = F(n-1)+2*F(n-2), при n > 2 Найдите значения функции до F(7) включительно.
Для вычисления значений функции F(n) до F(7) включительно, мы можем использовать рекурсию или динамическое программирование. Рекурсивное решение: def F(n): if n == 1 or n == 2: return 1 else: return F(n-1) + 2*F(n-2) for i in range(1, 8): print("F(", i, ") =", F(i)) Результат: F(1) = 1 F(2) = 1 F(3) = 3 F(4) = 5 F(5) = 11 F(6) = 21 F(7) = 43 Динамическое программирование: def F(n): if n == 1 or n == 2: return 1 else: fib = [0] * (n + 1) fib[1] = 1 fib[2] = 1 for i in range(3, n+1): fib[i] = fib[i-1] + 2*fib[i-2] return fib[n] for i in range(1, 8): print("F(", i, ") =", F(i)) Результат: F(1) = 1 F(2) = 1 F(3) = 3 F(4) = 5 F(5) = 11 F(6) = 21 F(7) = 43