Re[6]: Покритикуйте код
От: $$ Австралия жж
Дата: 20.07.19 07:12
Оценка:
Здравствуйте, Буравчик, Вы писали:

Б>Здравствуйте, $$, Вы писали:


Б>$>Здравствуйте, De-Bill, Вы писали:


DB>>>$>Сделать нужно в хакерранке, чтобы прошло скрытые тесты. Про переполнение сумм надо напоминать?


DB>>>https://www.hackerrank.com/challenges/s10-pearson-correlation-coefficient/problem


Б>$>1 час минимум потратил, пока оно заработало. Отлаживал в идее.


Б>Минут 20. В браузере:


Б>
Б># Enter your code here. Read input from STDIN. Print output to STDOUT

Б>import math

Б>def read_input():
Б>    n = float(input())
Б>    x_arr = [float(x) for x in input().split()]
Б>    y_arr = [float(x) for x in input().split()]
Б>    return x_arr, y_arr

Б>def mean_std(arr):
Б>    n = len(arr)
Б>    mean = sum(arr) / n
Б>    d = sum([(x-mean)**2 for x in arr]) / n
Б>    std = math.sqrt(d)
Б>    return mean, std

Б>def pearson(x_arr, y_arr):
Б>    mean_x, std_x = mean_std(x_arr)
Б>    mean_y, std_y = mean_std(y_arr)
Б>    p_numerator = sum([(x-mean_x)*(y-mean_y) for x,y in zip(x_arr,y_arr)])
Б>    p_denominator = len(x_arr) * std_x * std_y
Б>    return p_numerator / p_denominator

Б>def main():
Б>    x_arr, y_arr = read_input()
Б>    p = pearson(x_arr, y_arr)
Б>    print(f'{p:.3g}')

Б>main()
Б>


С точностью всё нормально?
mean_std — говнокод.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.