Задание 16. Информатика. Фоксфорд 2023-3
- Просмотры: 76
- Изменено: 21 ноября 2024
Алгоритм вычисления значения функции \(F(n)\), где \(n\) — натуральное число, задан следующими соотношениями:
\(F(n) = 5\) при \(n=1;\)
\(F(n) = 2n + F(n-1),\) если \(n>1\).
Чему равно значение выражения \(F(2048) - F(1024)\)?
Решение:
При \(n>1\) функцию \(F(n)\) можно представить в виде $$ F(n) = 5 + 2 \cdot 2 + 2 \cdot 3 + \cdots + 2 \cdot n $$ Значит, $$ F(2048) - F(1024) = 2 \cdot 1025 + 2 \cdot 1026 + \cdots + 2 \cdot 2048 = 2 \sum_{i = 1025}^{2048} i $$
Python
2*sum(range(1025, 2049))
Ответ: \(3146752\)
Эту же задачу можно также решить "в лоб" с помощью динамического программирования.
Python
arr = [None, 5]
for i in range(2, 2049):
arr.append(2*i + arr[i-1])
print(arr[2048]-arr[1024])
Ответ: \(3146752\)