Intermédiaire
🧠 Fondamentaux
20 XP
0 personnes ont réussi
Decorateur de cache (memoization)
La memoization est une technique d'optimisation qui consiste a stocker les résultats d'appels précédents pour eviter de recalculer. C'est comme prendre des notes : au lieu de refaire un calcul, tu regardes dans tes notes si tu l'as deja fait.
L'idee est simple : tu utilises un dictionnaire ou les clés sont les arguments et les valeurs sont les résultats. Avant d'appeler la fonction, tu vérifies si les arguments sont deja dans le dictionnaire.
Écris un decorateur cache qui memorise les résultats des appels précédents. Si la fonction est appelee avec les memes arguments, le decorateur renvoie le résultat stocke au lieu de recalculer.
Le wrapper doit avoir un attribut .cache (le dictionnaire) pour qu'on puisse l'inspecter.
Exemple : @cache def fibonacci(n): if n < 2: return n return fibonacci(n-1) + fibonacci(n-2)
fibonacci(10) renvoie 55 fibonacci.cache contient les résultats précédents