|Memoización simple con closureDifícil
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_unchecked
    Usa el diccionario cache para guardar y recuperar resultados
  • radio_button_unchecked
    Sin 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 export al 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
Memoización simple con closure — Difícil | Coding Challenges · Coding Challenges