форкнуто от main/python-labs
Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
23 строки
824 B
Python
23 строки
824 B
Python
import math
|
|
|
|
def calculate_correlation(list1, list2):
|
|
if not list1 or not list2:
|
|
print("Ошибка: Один или оба списка пусты.")
|
|
return None
|
|
|
|
n = min(len(list1), len(list2)) # Используем меньшую длину
|
|
sum_x = sum(list1[:n])
|
|
sum_y = sum(list2[:n])
|
|
sum_x_squared = sum(x**2 for x in list1[:n])
|
|
sum_y_squared = sum(y**2 for y in list2[:n])
|
|
sum_xy = sum(list1[i] * list2[i] for i in range(n))
|
|
|
|
numerator = n * sum_xy - sum_x * sum_y
|
|
denominator = math.sqrt((n * sum_x_squared - sum_x**2) * (n * sum_y_squared - sum_y**2))
|
|
|
|
if denominator == 0:
|
|
print("Предупреждение: Деление на ноль при вычислении корреляции.")
|
|
return None
|
|
|
|
return numerator / denominator
|