diff --git a/README.md b/README.md index 50ad1eb5cbf41b4bb8495f8fc415b6800ce7a0fc..0347e6ed30d8584aaa81b576a6834ff24e0f579b 100644 --- a/README.md +++ b/README.md @@ -1,23 +1,23 @@ -# TP numéro 1 : Polynômes et Reed-Solomon (modulo un nombre premier) -Cours : ISC 122 – 2021-2022 +# Travail Pratique 001 : polynômes et Reed-Solomon (modulo un nombre premier) +Cours : ISC_122 – 2021-2022 Groupe : Gawen ACKERMANN, Florian BURGENER, Quentin FASLER, Dario GENGA ## Structure du projet -Afin de réaliser ce travail pratique, nous avons créé une classe `Polynomial`, contenant des méthodes permettant +Afin de réaliser ce travail pratique, nous avons créé une classe nommée `Polynomial`, contenant des méthodes permettant d'ajouter, multiplier et d'appliquer un modulo sur un polynôme. Cette classe peut également afficher le -polynôme dans la console et d'obtenir y en passant x par le polynôme (faire P(x) = y). +polynôme dans la console et obtenir y en passant x par le polynôme (faire P(x) = y). En plus de cette classe le programme contient les fonctions suivantes : -- `get_bezout_coefficients(a, b)` : Calcule les coefficients de bézout pour les valeurs `a` et `b` ; -- `modular_inverse(a, n)` : Calcule l'inverse modulaire de `a` dans les modulos `n` ; -- `compute_lagrange_polynomial(points, prime_number)` : Calcule le polynôme de Lagrange dans un modulo `prime_number` passsant par tous les `points` ; -- `reed_solomon(...)` : Corrige le message en appliquant la méthode de Reed-Solomon. +- `get_bezout_coefficients(a, b)` : calcule les coefficients de Bézout pour les valeurs `a` et `b` ; +- `modular_inverse(a, n)` : calcule l'inverse modulaire de `a` dans les modulos `n` ; +- `compute_lagrange_polynomial(points, prime_number)` : calcule le polynôme de Lagrange dans un modulo `prime_number` ; +- `reed_solomon(...)` : corrige le message en utilisant la définition du code de Reed-Solomon. -## Explication de notre démarche pour corriger le message +## 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)) ; @@ -29,9 +29,9 @@ Afin de corriger le message, nous utilisons la méthode `reed_solomon` qui fonct ## Résultat -Message corrigé : Ce message vaut 18 points -Polynôme passant par tous les points du message : +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