форкнуто от main/python-labs
Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
30 строки
675 B
Python
30 строки
675 B
Python
import math
|
|
|
|
|
|
def calculateCorrelation(list1, list2):
|
|
if not list1 or not list2:
|
|
print("Ошибка: список не может быть пустым")
|
|
return None
|
|
|
|
n = min(len(list1), len(list2))
|
|
mean1 = sum(list1[:n]) / n
|
|
mean2 = sum(list2[:n]) / n
|
|
|
|
numerator = 0
|
|
sum1 = 0
|
|
sum2 = 0
|
|
|
|
for i in range(n):
|
|
d1 = list1[i] - mean1
|
|
d2 = list2[i] - mean2
|
|
numerator += d1 * d2
|
|
sum1 += d1 ** 2
|
|
sum2 += d2 ** 2
|
|
|
|
denominator = math.sqrt(sum1 * sum2)
|
|
if denominator == 0:
|
|
print("Ошибка: деление на ноль")
|
|
return None
|
|
|
|
return numerator / denominator
|