Учитывая два вектора X и Y , я должен найти их корреляцию, то есть их линейную зависимость / независимость. Оба вектора имеют одинаковую размерность. Результатом должно быть число с плавающей запятой от [-1.0 .. 1.0].
Пример:
X=[-1, 2, 0]
Y=[ 4, 2, -0.3]
Найти y = cor (X, Y) такой, что y принадлежит [- 1.0 .. 1.0] .
Это должна быть простая конструкция, включающая понимание списка. Внешняя библиотека запрещена.
ОБНОВЛЕНИЕ: хорошо, если точечного произведения достаточно, вот мое решение:
nX = 1/(sum([x*x for x in X]) ** 0.5)
nY = 1/(sum([y*y for y in Y]) ** 0.5)
cor = sum([(x*nX)*(y*nY) for x,y in zip(X,Y) ])
право