форкнуто от main/python-labs
Родитель
f1e43207fc
Сommit
b643e0a0b2
@ -0,0 +1,7 @@
|
|||||||
|
def read (file):
|
||||||
|
""""Чтение данных из файла"""
|
||||||
|
nums = []
|
||||||
|
with open(file, 'r') as file: # Открытие файла для чтения
|
||||||
|
for line in file:
|
||||||
|
nums.extend(map(float, line.split())) # Добавление всех элементов в список
|
||||||
|
return nums
|
||||||
@ -0,0 +1,16 @@
|
|||||||
|
def correlation(list1, list2):
|
||||||
|
"""Расчёт коэффициента корреляции"""
|
||||||
|
n = min(len(list1), len(list2)) # Общая длина
|
||||||
|
list1 = list1[:n]
|
||||||
|
list2 = list2[:n]
|
||||||
|
mean1 = sum(list1) / n
|
||||||
|
mean2 = sum(list2) / n
|
||||||
|
chislitel = sum((list1[i] - mean1) * (list2[i] - mean2) for i in range(n))
|
||||||
|
#Числитель формулы корреляции
|
||||||
|
znamenatel1 = sum((x - mean1) ** 2 for x in list1)
|
||||||
|
znamenatel2 = sum((y - mean2) ** 2 for y in list2)
|
||||||
|
|
||||||
|
if znamenatel1 == 0 or znamenatel2 == 0:
|
||||||
|
return 0
|
||||||
|
|
||||||
|
return chislitel/(znamenatel1 * znamenatel2) ** 0.5
|
||||||
@ -0,0 +1,8 @@
|
|||||||
|
import Modul1
|
||||||
|
import Modul2
|
||||||
|
file1 = input("Введите имя первого файла: ")
|
||||||
|
file2 = input("Введите имя второго файла: ")
|
||||||
|
list1 = Modul1.read(file1)
|
||||||
|
list2 = Modul1.read(file2)
|
||||||
|
corr = Modul2.correlation(list1, list2)
|
||||||
|
print("Коэффициент корреляции:", corr)
|
||||||
Загрузка…
Ссылка в новой задаче