info
Importante: Para que se registre el resultado tienes que iniciar sesión.
Implementar memoize
Difícil225 pts·Funciones
Enunciado
Implementar memoize
La memoización es una técnica de optimización que almacena los resultados de llamadas a funciones costosas y los reutiliza cuando se vuelven a llamar con los mismos argumentos, evitando recalcular.
Tu tarea
Implementa la función memoize que recibe una función fn y devuelve una versión cacheada de ella. Luego, usa memoize para crear memoize_sum, una versión cacheada de lambda a, b: a + b.
Cómo funciona memoize
memoize_sum = memoize(lambda a, b: a + b)
memoize_sum(1, 2) # Calcula y guarda en caché: 3
memoize_sum(1, 2) # Devuelve desde caché: 3 (sin recalcular)
memoize_sum(3, 4) # Calcula y guarda en caché: 7
Implementación sugerida
- Usa un
dictpara almacenar los resultados previos. - La clave del caché debe basarse en los argumentos. Puedes usar
str(args). - Si los argumentos ya están en el caché, devuelve el valor almacenado.
- Si no, ejecuta
fn, guarda el resultado y devuélvelo.
Notas
- La función
memoize_sumexportada es la que se evaluará con los test cases. - Los test cases verifican que
memoize_sumretorna los resultados correctos de la suma.
Restriccionesexpand_more
- Dificultad: Difícil
- Completa todos los test cases para obtener los 225 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