Ejercicio00:00
¿Quieres un reto mayor?
Resuelve en 15:00
info
Importante: Para que se registre el resultado tienes que iniciar sesión.
Memoización simple con closure
Difícil10 pts·Funciones
ruleRestricciones
- radio_button_uncheckedUsa el diccionario cache para guardar y recuperar resultados
- radio_button_uncheckedSin lru_cache
Enunciado
Implementa memoize(f), una función que recibe una función f y retorna un closure con un caché interno (un diccionario).
Cuando el closure recibe un argumento:
- Si el resultado ya está en el caché, lo retorna directamente.
- Si no, llama a
f, guarda el resultado en el caché y lo retorna.
También implementa fib_memoized(n) que usa memoize para calcular el número de Fibonacci de forma eficiente.
memoized_square = memoize(lambda x: x * x)
print(memoized_square(4)) # 16
print(memoized_square(4)) # 16 (desde caché)
print(fib_memoized(0)) # 0
print(fib_memoized(1)) # 1
print(fib_memoized(10)) # 55
No uses functools.lru_cache — implementa el caché manualmente con un diccionario dentro del closure.
Restriccionesexpand_more
- Dificultad: Difícil
- Completa todos los test cases para obtener los 10 puntos.
- No modificar la línea
exportal final del archivo. - Se recomienda evitar el uso de inteligencia artificial para que realmente tú practiques los ejercicios.
Puedes usar print() para depurar. Los resultados aparecen en la Consola de salida, no en el navegador.
Inicia sesión para reaccionar
Inicia sesión para reaccionar