Le scénario suivant m'est arrivé plusieurs fois.
J'ai programmé un algorithme qui résout un certain problème. Cela fonctionne bien et trouve les bonnes solutions. Maintenant, je veux avoir une option pour dire à l'algorithme "écrire une explication complète de la façon dont vous êtes arrivé à la solution". Mon objectif est de pouvoir utiliser l'algorithme dans des démonstrations en ligne, des cours de didacticiel, etc. Je veux toujours avoir une option pour exécuter l'algorithme en temps réel, sans les explications. Quel est un bon modèle de conception à utiliser?
EXEMPLE: Supposons que j'implémente cette méthode pour trouver le plus grand diviseur commun . La méthode implémentée actuelle renvoie la bonne réponse, mais sans explication. Je veux avoir une option pour la méthode pour expliquer ses actions, comme:
Initially, a=6 and b=4. The number of 2-factors, d, is initialized to 0.
a and b are both even, so we divide them by 2 and increment d by 1.
Now, a=3 and b=2.
a is odd but b is even, so we divide b by 2.
Now, a=3 and b=1.
a and b are both odd, so we replace a by (a-b)/2 = 1.
Now, a=1 and b=1.
a=b, so the GCD is a*2^d = 2.
La sortie doit être renvoyée de manière à pouvoir être facilement affichée à la fois dans la console et dans les applications Web.
Quel est un bon modèle pour fournir des explications en cas de besoin, sans nuire aux performances en temps réel de l'algorithme lorsque des explications ne sont pas nécessaires?