32 lines
622 B
Python
Executable File
32 lines
622 B
Python
Executable File
#!/usr/bin/env python3
|
|
from sage.all import *
|
|
MOD = 7514777789
|
|
|
|
ring=GF(MOD)
|
|
|
|
points = []
|
|
for line in open('encoded.txt', 'r').read().strip().split('\n'):
|
|
x, y = line.split(' ')
|
|
points.append((int(x), int(y)))
|
|
|
|
print("building matrices")
|
|
|
|
solution = []
|
|
M = []
|
|
for point in points:
|
|
x, y = point
|
|
solution.append(ring(y % MOD))
|
|
|
|
row = []
|
|
for i in range(3):
|
|
row.append(pow(x, i, MOD))
|
|
M.append(row)
|
|
|
|
print("converting matrices")
|
|
|
|
solution = vector(solution)
|
|
M = Matrix(M, base_ring=GF(MOD))
|
|
|
|
print('solving')
|
|
open('output.bmp', 'wb').write(bytearray(M.solve_right(solution).tolist()[:-1]))
|