Skip to content
Snippets Groups Projects
Commit fe1e7d48 authored by Florian Burgener's avatar Florian Burgener
Browse files

Explication Reed-Solomon

parent 2330805e
No related branches found
No related tags found
No related merge requests found
...@@ -160,9 +160,22 @@ def reed_solomon(points, data_length, last_error_index, prime_number): ...@@ -160,9 +160,22 @@ def reed_solomon(points, data_length, last_error_index, prime_number):
def main(): def main():
# m + 2n
# 25 + 2 * 11 = 47
message = {"data_length": 25, "last_error_index": 23, "prime_number": 401, "points": [67, 101, 38, 109, 101, 115, 133, 118, 103, 128, 62, 118, 97, 156, 116, 77, 49, 56, 86, 112, 171, 105, 176, 116, 115, 183, 30, 315, 368, 29, 352, 54, 333, 198, 139, 234, 321, 92, 5, 272, 396, 265, 397, 386, 229, 153, 276]} message = {"data_length": 25, "last_error_index": 23, "prime_number": 401, "points": [67, 101, 38, 109, 101, 115, 133, 118, 103, 128, 62, 118, 97, 156, 116, 77, 49, 56, 86, 112, 171, 105, 176, 116, 115, 183, 30, 315, 368, 29, 352, 54, 333, 198, 139, 234, 321, 92, 5, 272, 396, 265, 397, 386, 229, 153, 276]}
# > 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:])
# 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
# 0 à 24
# 0, 1, 2, 3
points = [(x, y) for x, y in enumerate(message["points"])] points = [(x, y) for x, y in enumerate(message["points"])]
print(points)
corrected_data = reed_solomon(points, message["data_length"], message["last_error_index"], message["prime_number"]) corrected_data = reed_solomon(points, message["data_length"], message["last_error_index"], message["prime_number"])
print(corrected_data) print(corrected_data)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment