Здравствуйте, Nuzhny, Вы писали:
N>Здравствуйте, Muxa, Вы писали:
M>>Сообщение послано от пользователя Аноним.
N>Кстати, не исключено, что никакого Анонима и нет. Ты его придумал, чтобы постить некоторые мысли и не компрометировать себя, а второй аккаунт заводить не хочется.
Аноним есть. Мне тоже иногда письма от него приходили и ещё кто-то про него писал. Я Анонима проигнорировал, а Muxa решил с ним пообщаться. Форум уже давно существует, а на старом форуме, как в старом замке, должно быть приведение
GIV>Я их игнорю, смысл? Зачем мне мнение какого-то труса непонятного.
Что трус эт понятно, но мне показалось забавным.
Это не первый раз когда я его сообщения публикую.
Он мне щас пишет чтоб я его сообщения приводил полностью (далее цитата) "иначе другим не понятно, что за бред я несу."
Хотя я только лишние пустые строки удаляю, это конечно немного повышает уровень бреда, но в пределах погрешности.
Здравствуйте, Muxa, Вы писали:
M>Это не первый раз когда я его сообщения публикую.
Не делай так больше.
M>Он мне щас пишет чтоб я его сообщения приводил полностью (далее цитата) "иначе другим не понятно, что за бред я несу."
Если ему хочется нести бред — пусть регистрируется и несёт.
А вот переносчиком говна быть не стоит — обгаживаться будет он а пахнуть будет от тебя.
Здравствуйте, pagid, Вы писали:
P>При желании на тестовых данных можно организовать и переполнение double. Вот только нужно при выполнении задания на 15 мин это учитывать
Задачи на хакерранке хороши тем, что в них чётко оговариваются пределы возможных значений. Конкретно для этой задачи длина не больше 100, числа в выборке от 1 до 500, максимум с одной цифрой после запятой. Какие тут могут быть переполнения? Результат нужен с тремя знаками после запятой, какая тут может быть потеря точности? Ещё и значения координат уникальны, то есть делить на ноль точно не придётся. Народ тупо прикалывается.
Здравствуйте, De-Bill, Вы писали:
DB>Специально поискал на хакерранке эту задачу. Это она https://www.hackerrank.com/challenges/s10-pearson-correlation-coefficient/problem? Зачем гуглить, там же всё написано... Специально зарегался на этом сайте, чтобы посмотреть, вдруг в задаче есть какие-то "секретные" сложности. Вроде нет.
Спасибо, попрактикуюсь.
Я откопал ссылку на хакерранк от той конторы, но ещё раз запустить тест она не позволяет.
Также, закачал с каггла таблицу (csv) на 160мег примерно, чтобы сравниватт результат с numpy.
Если ты про конкретную задачу по ссылке, то там указаны ограничения. Следовательно все приседания со средним заменяются на sum(X)/len(X). Далее через zip и mean пишется функция cov(X, Y). sigmaX соответсвенно корень из cov(X, X) и т.д.
Здравствуйте, De-Bill, Вы писали:
DB>>>https://www.hackerrank.com/challenges/s10-pearson-correlation-coefficient/problem DB>$>1 час минимум потратил, пока оно заработало. Отлаживал в идее.
DB>Если ты про конкретную задачу по ссылке, то там указаны ограничения. Следовательно все приседания со средним заменяются на sum(X)/len(X). Далее через zip и mean пишется функция cov(X, Y). sigmaX соответсвенно корень из cov(X, X) и т.д.
Т.е. решение- говно, потому что переполнения не будет на 500*100? Я правильно уловил мысль?
$>1 час минимум потратил, пока оно заработало. Отлаживал в идее.
Минут 20. В браузере:
# Enter your code here. Read input from STDIN. Print output to STDOUTimport 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()
Здравствуйте, Буравчик, Вы писали:
Б>Здравствуйте, $$, Вы писали:
Б>$>Здравствуйте, 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()
Б>