Информация об изменениях

Сообщение Re[7]: Покритикуйте код от 20.07.2019 7:15

Изменено 20.07.2019 7:16 Буравчик

Re[7]: Покритикуйте код
Здравствуйте, $$, Вы писали:

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

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


Б>>$>Здравствуйте, 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 — говнокод.

Поясни
Re[7]: Покритикуйте код
Здравствуйте, $$, Вы писали:

$>С точностью всё нормально?

С точностью — отлично

$>mean_std — говнокод.

Поясни