import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import ast
from math import sqrt
f = open('dataset.txt').read().strip().split('\n')
dataset = [ast.literal_eval(x) for x in f]
dataset[0:2]
[[(148, 13024.96), (236, 19034.88), (19, 1817.0), (202, 16665.88), (2, 414.12), (41, 3643.0), (67, 5801.0), (231, 19024.74), (219, 18785.34), (214, 16921.88), (207, 18117.84), (187, 15761.0), (136, 11528.0), (0, 240.0), (85, 7295.0), (6, 723.24), (223, 19498.96), (9, 927.78), (238, 19994.0), (177, 14931.0), (130, 11250.6), (69, 5967.0)], [(159, 10955.82), (16, 1136.8), (152, 10272.0), (121, 7867.2), (190, 13587.08), (155, 10473.0), (128, 9183.84), (191, 12627.3), (149, 10272.42), (215, 14493.0), (89, 6293.04), (101, 6855.0), (233, 15699.0), (228, 15364.0), (32, 2232.0), (33, 2299.0), (1, 155.0), (81, 5294.4), (247, 16969.74), (230, 15188.04), (120, 8128.0), (243, 15714.24)]]
# 0 in 25
data = dataset[0]
x,y = [], []
for d in data:
x.append(d[0])
y.append(d[1])
def smol_sqr(x,y):
n = len(x)
x_mean = sum(x)/len(x) # x with a dash
y_mean = sum(y)/len(y) # y with a dash
a_hat = [0,0]
for i in range(n):
sub_mean = x[i] - x_mean
y_sub_mean = y[i] * sub_mean
sub_mean_sqr = sub_mean**2
a_hat[0] += y_sub_mean
a_hat[1] += sub_mean_sqr
#print('x: %d, y: %.2f, %.2f, %.2f, %.2f' % (x[i],y[i],sub_mean,y_sub_mean,sub_mean_sqr))
a_hat = a_hat[0]/a_hat[1]
b_hat = y_mean - x_mean * a_hat
#print('a-hat: %.10f, b-hat: %.10f' % (a_hat, b_hat))
return a_hat, b_hat
print(x,y)
smol_sqr(x,y)
[148, 236, 19, 202, 2, 41, 67, 231, 219, 214, 207, 187, 136, 0, 85, 6, 223, 9, 238, 177, 130, 69] [13024.96, 19034.88, 1817.0, 16665.88, 414.12, 3643.0, 5801.0, 19024.74, 18785.34, 16921.88, 18117.84, 15761.0, 11528.0, 240.0, 7295.0, 723.24, 19498.96, 927.78, 19994.0, 14931.0, 11250.6, 5967.0]
(82.6079979389731, 284.766266621933)
f = open('dataset.txt').read().strip().split('\n')
dataset = [ast.literal_eval(x) for x in f]
for i in range(len(dataset)):
data = dataset[i]
x,y = [], []
for d in data:
x.append(d[0])
y.append(d[1])
ret, _ = smol_sqr(x,y)
print(chr(round(ret)), end='')
#print(ret)
SCTF{Pr0gre55_In_R3gr3ss}