Skip to content
Snippets Groups Projects
Commit 6025fc01 authored by Florian Burgener's avatar Florian Burgener
Browse files

Update README

parent fa59325e
Branches
No related tags found
No related merge requests found
......@@ -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 ;
6) On corrige le message avec le polynôme.
## Résultat
Message corrigé : Ce message vaut 18 points
Polynôme passant par tous les points du message :
229x²⁴ + 361x²³ + 51x²² + 312x²¹ + 36x²⁰ + 293x¹⁹ + 99x¹⁸ + 266x¹⁷ + 169x¹⁶ + 273x¹⁵ + 8x¹⁴ + 294x¹³ + 204x¹² + 35x¹¹ + 225x¹⁰ + 48x⁹ + 265x⁸ + 113x⁷ + 102x⁶ + 43x⁵ + 101x⁴ + 349x³ + 30x² + 138x + 67
Polynôme passant par tous les points du message : 229x²⁴ + 361x²³ + 51x²² + 312x²¹ + 36x²⁰ + 293x¹⁹ + 99x¹⁸ + 266x¹⁷ + 169x¹⁶ + 273x¹⁵ + 8x¹⁴ + 294x¹³ + 204x¹² + 35x¹¹ + 225x¹⁰ + 48x⁹ + 265x⁸ + 113x⁷ + 102x⁶ + 43x⁵ + 101x⁴ + 349x³ + 30x² + 138x + 67
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment