diff --git a/polynomial.py b/polynomial.py index 73769da2fc022f4c18457849231a60a6ac998ce1..0c0b5d7dd6ff00171bee6734eb865a3bfb060cbb 100644 --- a/polynomial.py +++ b/polynomial.py @@ -93,21 +93,10 @@ class Polynomial: def compute_bachet_bezout(a, b): - r = [] - x = [] - y = [] - q = [] - - # Init - r.append(a) - x.append(1) - y.append(0) - q.append(0) - - r.append(b) - x.append(0) - y.append(1) - q.append(0) + r = [a, b] + x = [1, 0] + y = [0, 1] + q = [0, 0] # Computing i = 1 @@ -146,11 +135,12 @@ def compute_lagrange_polynomial(points, prime_number): poly_li *= dividend divider *= points[i][0] - points[k][0] - divider = 1 / divider + divider = modular_inverse(divider, prime_number) point_yi = points[i][1] poly_li = poly_li * Polynomial((divider,)) * Polynomial((point_yi,)) lagrange += poly_li + lagrange %= prime_number return lagrange @@ -166,8 +156,8 @@ def main(): # > 23 => 24 à 46 = 23 points # Il faut trouver 2 points dans [0 ; 23] print(len(message["points"])) - print(message["points"][:23 + 1]) - print(message["points"][23 + 1:]) + print(message["points"][: 23 + 1]) + print(message["points"][23 + 1 :]) # 25 points # Polynome qui passe les 25 points possiblement juste # On test tous les points, si le polynome passe par m + n points c'est le bon