Алгоритм вычисления значения , где
— целое неотрицательное число, задан следующими соотношениями:
, при
или
иначе
Найдите чему равно значение
Решение руками
Что такое Это есть просто число
. А значит, нужно найти сумму чисел от 2 до 10000 включительно.
Решение программой
from functools import lru_cache # импортируем кэширование для того чтобы ускорить выполнение программы за счёт того,
# что программа будет запоминать промежуточные значения функции, а не высчитывать их вновь при подсчитывании значения функции
@lru_cache(None) # применяем кэширование для функции
def f(n): # объявляем функцию
if n == 0 or n == 1: # если n равно 0 или 1
return 1 # возвращаем 1
else: # в ином случае
return f(n-1) * n
sm = 0 # переменная для подсчёта суммы выражения
for i in range(2,10001):
sm += f(i)//f(i-1)
print(sm) # вывод ответа
Ответ: 50004999