From 1507647832b9a30d32bea9c70b5a15e28953db48 Mon Sep 17 00:00:00 2001 From: jonas <jonas.stirnemann@etu.hesge.ch> Date: Tue, 14 Dec 2021 17:54:45 +0100 Subject: [PATCH] Broken version --- main.py | 10 +++++----- reed_solomon.py | 13 +++++++++---- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/main.py b/main.py index 32da3ec..d05c32e 100644 --- a/main.py +++ b/main.py @@ -1,10 +1,10 @@ # MAIN FILE TO TEST FUNCTIONS from polynome import * +from reed_solomon import * if __name__ == "__main__": - pol1 = polynome([1, 2, 3, 4, 5]) - pol2 = polynome([2, 3, 4, 4, 4]) - # pol3 = pol1.add(pol2) - pol1.show() - pol1.evaluate(2) \ No newline at end of file + + reed_solomon = reed_decode([115, 117, 101, 118, 122, 116, 57, 108, 32, 224, 62, 116, 115, 140, 32, 108, 153, 83, 169, 117, 108, 112, 32, 110, 101, 55, 96, 61, 160, 218, 228, 156, 224, 203, 12, 75, 180, 23, 220, 211, 137, 139, 206]) + # reed_solomon = reed_decode([2, 3 ,4]) + reed_solomon.show() \ No newline at end of file diff --git a/reed_solomon.py b/reed_solomon.py index 0e7efb1..c216f80 100644 --- a/reed_solomon.py +++ b/reed_solomon.py @@ -38,15 +38,20 @@ def lagrange_compute(l: list) -> polynome: def check_nb_error(l: list, p: polynome) -> int: nbr_error = 0 - for _, item in enumerate(l): - if (item % p.prime_mod) != (p.evaluate(_) % p.prime_mod): - print(f"DEBUG PURPOSES ONLY {item} != p.evaluate({_}) = {p.evaluate(_)}") + for item in l: + if (item[1] % p.prime_mod) != (p.evaluate(item[0]) % p.prime_mod): + print(f"DEBUG PURPOSES ONLY {item[1]} != p.evaluate({item[0]}) = {p.evaluate(item[0])}") nbr_error += 1 return nbr_error def reed_decode(l: list) -> polynome: + # print("test") for points in get_possibilities(l): - if (check_nb_error(l, lagrange_compute(points)) <= 9): + # print(f"{points}") + # lagrange_compute(points).show() + err = check_nb_error(l, lagrange_compute(points)) + print(f"{err=}") + if ((err) <= 9): # Possibilité d'optimiser en evitant de compute 2 fois le poly return lagrange_compute(points) \ No newline at end of file -- GitLab