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

Update README

parent 3f7a6377
Branches
No related tags found
No related merge requests found
# 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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment