Skip to content
Snippets Groups Projects
Commit ad31f8bc authored by quentin.fasler's avatar quentin.fasler
Browse files
parents 53507693 629e1bc3
No related branches found
No related tags found
No related merge requests found
import math
from numbers import Number
import itertools
import json
......@@ -77,6 +78,7 @@ class Polynomial:
str_value = ""
for i, x in enumerate(reversed(self.value)):
x = math.ceil(x)
if x == 0:
continue
if i != 0:
......@@ -130,7 +132,29 @@ def modular_inverse(a, n):
def compute_lagrange_polynomial(points, prime_number):
pass
nb_points = len(points)
lagrange = Polynomial((0,))
# Create a polynomial for each points
for i in range(nb_points):
poly_li = Polynomial((1,))
divider = 1
# Compute the lagrange polynomial
for k in range(nb_points):
if k != i:
dividend = Polynomial((-points[k][0], 1)) # x - value
poly_li *= dividend
divider *= (points[i][0] - points[k][0])
divider = 1 / divider
point_yi = points[i][1]
poly_li = poly_li * Polynomial((divider,)) * Polynomial((point_yi,))
lagrange += poly_li
return lagrange
def reed_solomon(points, data_length, last_error_index, prime_number):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment