diff --git a/readme.md b/readme.md index 1023d083fe6de2a784ffc61689080729df372cde..48767cf84680a35fc7789d976e185a3afab69a8c 100644 --- a/readme.md +++ b/readme.md @@ -3,13 +3,27 @@ Cours : IT 122 – 2021-2022 Groupe : Florian BURGENER, Gawen ACKERMANN, 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 +d'ajouter, multiplier et faire une division modulaire sur des polynômes. Cette classe peut également afficher le +polynôme dans la console et calculer le résultat du polynôme en passant une valeur à x. + +En plus de cette classe le programme contient les méthodes 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` par `n` +- `compute_lagrange_polynomial(points, prime_number)` : Calcule le polynôme de lagrange à partir des `points` en +utilisant un inverse modulaire obtenu avec le `prime_number`. +- `reed_solomon(...)` : Décode le message via reed solomon. + ## Démarche de décodage -Afin de décoder le message, nous procédons de la manière suivante : +Afin de décoder le message, nous utilisons la méthode `reed_solomon` qui fonctionne de la manière suivante : 1) On parcourt toutes les combinaisons de points possiblement juste. 2) On crée une liste qui regroupe une combinaison de points avec tous les points justes que l'on connait. -3) On construit le polynôme de Lagrange +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. 5) Si on a suffisamment de points justes, alors on peut décoder le message.