Вопрос Помогите написать код python

Регистрация
4 Сен 2013
Сообщения
77
Репутация
0
Спасибо
0
Монет
0
Задание

1. Докажите, что внутреннее кэширование рекурсивной функции факториала и мемоизация с помощью словаря не эффективно для использования.



2. Докажите, что нахождение факториала с помощью обычной итерации является оптимальным решением.



Помогите пожалуйста решить.
 
import time

# Рекурсия с внутренним кэшированием
def factorial_recursive(n, cache={}):
if n < 2:
return 1
if n not in cache:
cache[n] = n * factorial_recursive(n-1)
return cache[n]

# Мемоизация с использованием словаря
def factorial_memoization(n, cache={}):
if n < 2:
return 1
if n not in cache:
cache[n] = n * factorial_memoization(n-1, cache)
return cache[n]

# Обычная итерация
def factorial_iteration(n):
result = 1
for i in range(2, n+1):
result *= i
return result

# Тестирование времени выполнения для каждого подхода
n = 1000

start = time.time()
factorial_recursive(n)
end = time.time()
print(f"Время выполнения рекурсии с внутренним кэшированием: {end - start}")

start = time.time()
factorial_memoization(n)
end = time.time()
print(f"Время выполнения мемоизации с использованием словаря: {end - start}")

start = time.time()
factorial_iteration(n)
end = time.time()
print(f"Время выполнения обычной итерации: {end - start}")
 
И про что тут писать код? Тут нужно не по клавишам клацать, а доказывать эти заявы теоретически
 
Назад
Сверху