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

Initial commit

parents
No related branches found
No related tags found
No related merge requests found
[
{
"prime_number": 257,
"data_length": 25,
"points": [70, 100, 111, 116, 113, 115, 50, 108, 39, 101, 132, 102, 111, 153, 116, 89, 80, 98, 165, 110, 32, 115, 97, 110, 103, 102, 139, 42, 35, 164, 63, 150, 187, 136, 152, 143, 110, 12, 184, 123, 34, 238, 113],
"last_error_index": 19
},
{
"prime_number": 257,
"data_length": 22,
"points": [66, 111, 110, 53, 44, 231, 97, 32, 139, 101, 109, 131, 144, 140, 32, 99, 159, 165, 114, 158, 99, 179, 253, 34, 5, 206, 179, 92, 79, 7, 239, 168, 189, 225, 211, 189, 60, 165, 200, 58, 248, 62],
"last_error_index": 21
},
{
"prime_number": 251,
"data_length": 39,
"points": [79, 113, 32, 106, 105, 109, 101, 114, 121, 132, 116, 32, 117, 149, 74, 154, 101, 115, 115, 97, 103, 101, 32, 112, 108, 117, 115, 32, 105, 110, 116, 233, 114, 101, 115, 115, 97, 110, 116, 83, 101, 100, 67, 101, 150, 139, 206, 157, 156, 26, 79, 197, 105, 205, 155],
"last_error_index": 17
},
{
"prime_number": 251,
"data_length": 27,
"points": [67, 114, 109, 121, 114, 116, 110, 100, 69, 111, 140, 32, 135, 101, 74, 113, 117, 39, 165, 167, 32, 102, 97, 105, 116, 32, 63, 158, 222, 249, 154, 194, 169, 39, 97, 132, 248, 221, 42, 223, 24, 224, 223, 174, 205],
"last_error_index": 19
},
{
"prime_number": 233,
"data_length": 14,
"points": [74, 39, 101, 119, 44, 127, 119, 117, 120, 32, 112, 141, 117, 115, 7, 139, 85, 220, 82, 193, 17, 21, 205, 128, 19, 219, 205, 130, 136, 119, 42, 210, 34, 163],
"last_error_index": 21
},
{
"prime_number": 233,
"data_length": 19,
"points": [72, 104, 108, 121, 32, 109, 119, 32, 97, 66, 109, 32, 105, 149, 32, 104, 101, 159, 108, 135, 170, 200, 143, 169, 201, 203, 117, 46, 145, 128, 56, 177, 138, 226, 106, 5, 147, 181, 79],
"last_error_index": 21
},
{
"prime_number": 257,
"data_length": 25,
"points": [83, 111, 114, 125, 101, 122, 63, 109, 111, 132, 62, 133, 137, 32, 150, 224, 80, 98, 165, 110, 32, 115, 97, 110, 103, 107, 88, 211, 112, 68, 168, 180, 35, 24, 29, 204, 117, 120, 98, 116, 110, 3, 131],
"last_error_index": 19
},
{
"prime_number": 241,
"data_length": 30,
"points": [76, 101, 38, 108, 123, 100, 119, 53, 110, 39, 101, 115, 152, 32, 154, 108, 165, 115, 32, 173, 114, 111, 112, 32, 115, 101, 99, 114, 101, 116, 81, 203, 133, 160, 94, 49, 1, 142, 48, 88, 34, 70, 220, 227, 77, 98, 7, 205],
"last_error_index": 19
},
{
"prime_number": 241,
"data_length": 27,
"points": [65, 112, 118, 97, 126, 101, 127, 109, 125, 110, 146, 65, 86, 52, 49, 32, 101, 166, 116, 89, 112, 114, 101, 109, 105, 101, 114, 39, 186, 159, 239, 90, 97, 193, 205, 83, 91, 217, 225, 223, 164, 194, 36, 230, 239],
"last_error_index": 19
},
{
"prime_number": 251,
"data_length": 20,
"points": [68, 108, 107, 103, 111, 32, 128, 60, 101, 142, 146, 32, 148, 97, 115, 77, 109, 111, 114, 173, 229, 71, 218, 3, 24, 126, 215, 163, 243, 119, 9, 18, 51, 97, 183, 205, 71, 146, 141, 197],
"last_error_index": 21
},
{
"prime_number": 251,
"data_length": 34,
"points": [76, 100, 38, 113, 129, 101, 115, 116, 105, 111, 140, 65, 101, 147, 150, 101, 80, 101, 115, 173, 32, 118, 105, 116, 101, 32, 114, 233, 112, 111, 110, 100, 117, 101, 19, 99, 110, 196, 126, 153, 187, 152, 95, 91, 168, 134, 52, 154, 148, 21, 170, 119],
"last_error_index": 19
},
{
"prime_number": 199,
"data_length": 25,
"points": [69, 110, 38, 98, 117, 125, 97, 105, 114, 101, 74, 65, 144, 111, 108, 32, 80, 148, 32, 102, 97, 168, 116, 32, 53, 83, 93, 162, 47, 117, 34, 46, 148, 82, 22, 149, 190, 95, 68, 69, 149, 139, 73, 110, 44],
"last_error_index": 21
},
{
"prime_number": 179,
"data_length": 25,
"points": [78, 114, 116, 44, 32, 110, 111, 131, 68, 59, 116, 147, 147, 105, 115, 32, 150, 111, 159, 115, 92, 110, 111, 110, 46, 91, 63, 45, 160, 28, 162, 13, 29, 23, 171, 19, 141, 85, 11, 22, 80, 100, 101, 2, 114],
"last_error_index": 21
},
{
"prime_number": 233,
"data_length": 31,
"points": [73, 111, 32, 130, 32, 97, 135, 114, 97, 59, 118, 147, 133, 105, 151, 146, 110, 167, 32, 49, 52, 32, 103, 114, 111, 117, 112, 101, 115, 32, 63, 6, 26, 185, 213, 213, 111, 128, 131, 26, 56, 74, 11, 166, 132, 80, 125, 126, 50],
"last_error_index": 19
},
{
"prime_number": 257,
"data_length": 31,
"points": [84, 111, 117, 125, 32, 246, 115, 32, 112, 111, 147, 147, 32, 13, 97, 89, 32, 102, 114, 154, 110, 99, 104, 101, 109, 101, 110, 116, 46, 46, 46, 188, 226, 113, 109, 219, 255, 111, 61, 71, 206, 163, 166, 0, 22, 92, 247, 216, 26],
"last_error_index": 19
}
]
from numbers import Number
import itertools
import json
def unicode_superscripts(value):
exponent_dict = {"0": "", "1": "¹", "2": "²", "3": "³", "4": "", "5": "", "6": "", "7": "", "8": "", "9": ""}
return ("" if value < 0 else "") + "".join(exponent_dict[x] for x in str(abs(value)))
class Polynomial:
def __init__(self, value=()):
if not isinstance(value, tuple):
raise TypeError("The \"value\" parameter is not of type tuple.")
self.value = value
def pass_x_throughout(self, x):
pass
def __add__(self, other):
pass
def __mul__(self, other):
pass
def __mod__(self, other):
pass
def __str__(self):
str_value = ""
for i, x in enumerate(reversed(self.value)):
if x == 0:
continue
if i != 0:
str_value += " + " if x >= 0 else " - "
if x != 1 or i == len(self.value) - 1:
str_value += str(abs(x))
if len(self.value) - i - 1 >= 1:
str_value += "x"
if len(self.value) - i - 1 >= 2:
str_value += unicode_superscripts(len(self.value) - i - 1)
return str_value
def compute_lagrange_polynomial(points, prime_number):
pass
def reed_solomon(points, data_length, last_error_index, prime_number):
pass
def main():
with open("messages.json") as f:
messages = json.load(f)
print(len(messages))
for message in messages:
points = [(x, y) for x, y in enumerate(message["points"])]
corrected_data = reed_solomon(points, message["data_length"], message["last_error_index"], message["prime_number"])
print(corrected_data)
break
if __name__ == "__main__":
main()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment