33 lines
966 B
Python

import numpy, numpy.linalg
def solve(input):
less = 0
greater = 0
for line in open(input):
parts = line.split()[1:]
idxs = [delist(p) for p in parts[:-1]]
target = delist(parts[-1])
if len(idxs) != len(target) and 0:
if len(idxs) > len(target):
greater += 1
if len(idxs) < len(target):
less += 1
#print(line.strip())
else:
#assert len(idxs) == len(target)
N = len(target)
matrix = [[int(i in row) for i in range(N)] for row in idxs]
#print(matrix, target)
arr = numpy.array(matrix)
print(arr)
try:
print(target, numpy.linalg.lstsq(arr.T, target))
except numpy.linalg.LinAlgError as ex:
print(target, ex)
print(less, greater)
def delist(s):
return [int(x) for x in s.strip("{}()").split(',')]
solve("input")