Задание 16. Информатика. Фоксфорд 2023-4

Алгоритм вычисления значения функции \(F(n)\), где \(n\) — натуральное число, задан следующими соотношениями:

\(F(n) = 6\) при \(n=1;\)
\(F(n) = 3n + F(n-1),\) если \(n>1\).

Чему равно значение выражения \(F(2023) - F(1984)\)?

Решение:

При \(n>1\) функцию \(F(n)\) можно представить в виде $$ F(n) = 6 + 3 \cdot 2 + 3 \cdot 3 + \cdots + 3 \cdot n $$ Значит, $$ F(2023) - F(1984) = 3 \cdot 1985 + 3 \cdot 1986 + \cdots + 3 \cdot 2023 = 3 \sum_{i = 1985}^{2023} i $$

Python


3*sum(range(1985, 2024))

Эту же задачу можно также решить "в лоб" с помощью динамического программирования.

Python


arr = [None, 6]
for i in range(2, 2024):
    arr.append(3*i + arr[i-1])

print(arr[2023]-arr[1984])

Ответ: \(234468\)