Задание 16. Информатика. ЕГЭ. Поляков-7389
- Просмотры: 114
- Изменено: 24 ноября 2024
*(А. Минак) Алгоритм вычисления значения функции \(F(n)\), где \(n\) – натуральное число, задан следующими соотношениями:
\(F(1) = F(2) = 1\),
\(F(n) = 3 \cdot F(n - 2) + F(n - 1)\), если \(n > 2\).
Чему равно значение выражения \(F(20000024) / F(20000020)\)? Запишите в ответе только целую часть числа.
Решение:
Напишем на Python эту функцию:
def F(n):
a, b = 0, 1
for _ in range(n):
a, b = b, 3 * a + b
return a
Функция \(F(n)\) растёт очень быстро. При \(n \geq 10~000\) произойдёт переполнение буфера. Однако, нам не нужны значения самой функции. Нужно лишь отношения её значений, для аргументов, отстоящих друг от друга на \(4\). Попробуем увидеть к чему стремится это отношение для небольших значений аргумента. Например, от \(300\) до \(500\).
for n in range(300, 500):
print(F(n+4) / F(n))
Получается одно и то же число \(28.11942946412396\). Изменения будут заметны только для очень маленьких разрядов. Поэтому, целая часть предела, куда стремится это отношение, равно \(28\).
Ответ: \(28\)