@@ -19,19 +19,20 @@ En plus de cette classe le programme contient les fonctions suivantes :
## Explication de notre algorithme pour corriger le message
Afin de corriger le message, nous utilisons la méthode `reed_solomon` qui fonctionne de la manière suivante :
1) On parcourt toutes les combinaisons dans la liste 0 à index - 1 (de longueur 2 = 25 - 23 (le nombre de points juste a partir de l'index fournis)) ;
2) On crée une liste qui regroupe la combinaison avec les points de index à longueur de la liste - 1 ;
3) On construit le polynôme de Lagrange avec la méthode `compute_lagrange_polynomial` ;
4) On parcourt l'intégralité des points afin de vérifier si le polynôme est correct ;
4.A) On injecte x dans le polynôme et on regarde que le résultat soit égale à y ;
5) Si on a suffisamment de points justes (m + n points), alors on a trouvé le seul et unique polynôme qui passe par tous les points du message sans erreur ce qui nous permet de corriger le message.
Afin de corriger le message, nous utilisons la fonction `reed_solomon` qui fonctionne de la manière suivante :
1) On parcourt toutes les combinaisons (de longueur 2 car 25 (longueur du message) - 23 (le nombre de points sans erreur à partir de l'index donné)) dans la sous-liste de points : 0 à index donnée (pas inclus) ;
2) On crée une liste qui unie la combinaison i avec la sous-liste de points : index donnée à longueur de la liste de points (pas inclus) ;
3) On construit le polynôme de Lagrange avec la fonction `compute_lagrange_polynomial` ;
4) On parcourt l'intégralité des points afin de vérifier si on a trouvé le bon polynôme ;
4.A) On injecte x dans le polynôme et on regarde que le résultat soit égale à y, si le résultat est égal à y, on incrémente un compteur ;
5) Si le compteur est >= m + n (m = longueur du message, n = nombre d'erreurs maximales), alors on a trouvé le seul et unique polynôme qui passe par tous les points du message originel ;
5.A) Si le compteur est < m + n on retourne au point 2 et on recommence avec une autre combinaison ;