Skip to content
Snippets Groups Projects
Commit 84a0ab8d authored by abivarma.kandiah's avatar abivarma.kandiah
Browse files

Merge branch '12-create-lagrange-method' into 'main'

Resolve "Create Lagrange method"

Closes #12

See merge request !10
parents 570821e7 21425e92
No related branches found
No related tags found
1 merge request!10Resolve "Create Lagrange method"
......@@ -38,7 +38,7 @@ class polynome():
coeff_poly_res = [0] * (len(self.coefs) + len(poly_2.coefs) - 1)
for index_1, value_1 in enumerate(self.coefs):
for index_2, value_2 in enumerate(poly_2.coefs):
coeff_poly_res[index_1 + index_2] += value_1 * value_2
coeff_poly_res[index_1 + index_2] += (value_1 * value_2) % self.prime_mod
return polynome(coeff_poly_res)
def evaluate(self, x):
......@@ -46,4 +46,4 @@ class polynome():
res = 0
for i in range(len(self.coefs) - 1, -1, -1):
res = (res * x + self.coefs[i])
return res
return (res % self.prime_mod)
# Created on 09/12/2021
from polynome import *
from inverse_mult import *
from itertools import combinations
def get_possibilities(l: list):
......@@ -22,7 +23,17 @@ def get_possibilities(l: list):
return p
def lagrange_compute(l: list) -> polynome:
pass
poly_l = [0] * len(l)
poly = polynome(poly_l)
for x_i, y_i in enumerate(l):
poly_n = polynome([1])
for x_k, y_k in enumerate(l):
if x_k != x_i:
d = inverse_mult((x_i-x_k) % poly_n.prime_mod, poly_n.prime_mod)
poly_n = poly_n.mul(polynome([-x_k * d % poly_n.prime_mod, d % poly_n.prime_mod]))
poly_n = poly_n.mul(polynome([y_i[1] % poly_n.prime_mod]))
poly = poly.add(poly_n)
return poly
def check_nb_error(l: list, p: polynome) -> int:
......@@ -31,4 +42,4 @@ def check_nb_error(l: list, p: polynome) -> int:
if (item % p.prime_mod) != (p.evaluate(_) % p.prime_mod):
print(f"DEBUG PURPOSES ONLY {item} != p.evaluate({_}) = {p.evaluate(_)}")
nbr_error += 1
return nbr_error
\ No newline at end of file
return nbr_error
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